引言
在之前的文章中,我们介绍了如何使用Scala IDE也就是eclipse中集成的Scala开发插件来进行Scala语言程序的开发,在使用了一段时间之后,发现eclipse对Scala的支持并不是很好。用户体验比较差,比如联想速度比较慢等。由于在公司一直使用的Scala开发工具是Intellij IDEA(好吧,其实我使用Scala IDE的目的就是想试一下这两个各有什么优缺点),各方面感觉还不错,所以在此介绍一下这个开发环境。
Intellij IDEA是jetbrain开发的一个IDE,用于Java、Groovy、Scala等的开发,自称是当前最智能的Java开发环境(The most intelligent IDE for Java platform),相对于其他开发工具来说,其对于代码检视、上下文理解、cvs/ant/maven/git的支持都比较完善。
好了,正式进入IDEA的介绍。
安装和配置
在IDEA的官方网站()下载安装包,目前版本是13.1.4(2014/5/21),选择你适合的系统,这里以windows系统为例。然后选择Ultimate或者Community版本,很明显可以看出前者包含更多的功能但是收费(当然现在提供30天的免费试用),后者是社区版并且开源而且license是Apache 2.0。作为底层的穷逼程序猿我还是选择Community版本来演示吧。
下载会得到一个.exe执行文件,当然,双击安装即可,中间会提示选择安装路径blahblah,这里不做赘述。
安装之后打开,首先会弹出一个tab,如图:
这里会让你选择接下来的操作,是进行环境配置还是新建工程还是导入工程,这里我们选新建工程:
从这里看到,并没有新建Scala工程的选项,这说明要支持Scala开发,IDEA需要进行一定的配置。所以我们退回,选择Configure项,然后选Plugins:
点集左下角的“Install Intellij Plugins...”,出现以下界面,显示了当前可以安装的插件:
找到Scala,点集右侧边栏中的Install Plugin按钮,骚等一会,安装就完成啦。
当然有的时候因为网络不好或者其他的原因(你懂的),也可能出现让你长时间等待或者报connect timeout的错误。这时候你需要自己手动下载插件安装包(http://plugins.jetbrains.com/plugin/?id=1347),蓝后在上一个界面中选择“Install plugin from disk”,在弹出的标签里选择你存放插件的路径,点OK即可。
新建工程
安装完Scala插件之后,回到新建工程的地方,就可以看到有新建Scala工程的选项了。我们选择No-SBT,从普通的项目开始。
在这里配置你的项目名称、存放路径、JDK路径、Scala Home、模块路径及其他,点击创建即可打开新建的工程。在这个地方可以得出搭建Scala开发环境需要在本机上安装JDK和Scala。
我们可以看到现在还没有源文件,只有一个存放源文件的目录src以及存放工程其他信息的杂项,在src上右键创建包com.doggie以及类HelloWorld,当然我们这里需要创建的是入口类,即Object。
像这篇文章(http://blog.csdn.net/asongoficeandfire/article/details/21490101)里一样,写一个main方法并添加一条打印语句:
在代码编辑器里右键,上下文菜单中有run HelloWorld的选项,点击即可运行我们的代码啦!
打包
我们知道Scala代码编译得到的类也是运行在JVM上的,那么IDEA能否支持打包呢?当然必须非常支持啊。需要点击菜单栏里的File->Project Structure或者点击右侧相应的图标均可进入项目的配置界面,在左侧选择Artifacts,点击绿色的+号,即新建一个打包操作,选中新建的unnamed打包项之后,可以配置jar包的名称,输出路径,还可以选择jar包中包含的东东,当然这里我们选择最简单的,即编译输出。
配置完成后,我们就可以在菜单栏中选择Build->Build Artifacts...,然后使用Build、ReBuild等命令打包啦。打包完成后会在状态栏中显示“Compilation completed successfully...”的信息,去jar包输出路径下查看,就能拿到我们的jar包啦。
这个jar包使用方式和Java导出的jar包完全相同,只是需要在运行时将Scala中的scala-compiler.jar加入到CLASSPATH中。
这里介绍了Eclipse Scala IDE集成环境的使用,你可以对比一下。
声明:本文为原创,禁止用于任何商业用途,转载请注明出处:http://blog.csdn.net/asongoficeandfire/article/details/26412493