配置IntelliJ IDEA 13的SBT和Scala开发环境
2015-11-09 16:01
603 查看
debugo
·
暂无评论
对于scala的开发环境,公认最好的IDE是IntelliJ IDEA+scala&sbt插件。sbt(Simple Build Tool,a build tool for Scala.)是scala专用的构建工具,使用scala语言编写,配置比maven等构建工具简单了许多。sbt集成了依赖管理(使用Ivy做依赖管理),并“只在请求时更新”。(详见twitter,
scala school的简单构建工具)
SBT其他相关链接
sbt http://www.scala-sbt.org/
sbt github https://github.com/sbt/sbt
sbt-idea https://github.com/mpeltonen/sbt-idea
我在配置IDEA+scala&sbt的过程中走了不少弯路,所以记录一下配置的过程,希望对大家有所帮助。
打开安装完成的Intellij IDEA 13(http://www.jetbrains.com/idea/),首先要安装好scala和sbt plugin。在IDEA的wizard中选择plugin -> 安装插件 -> 搜索scala和sbt,然后等待安装完成即可。
创建一个Scala – sbt项目sbtFirst
虽然这个项目采用sbt格局,但少了sbt-idea插件,IDEA并不能对这个项目进行操作,只能打开sbt console。
首先我们需要修改项目的build.sbt文件,添加需要的Scala版本和libraryDependencies,注意sbt文件每行之间必须有空行。
name := “sbtTest”
version := “1.0″
scalaVersion := “2.10.4″
libraryDependencies += “org.mongodb” %% “casbah” % “2.7.2″
1 2 3 4 5 6 7 | name := “sbtTest” version := “1.0″ scalaVersion := “2.10.4″ libraryDependencies += “org.mongodb” %% “casbah” % “2.7.2″ |
执行
console命令,sbt会根据build.sbt中的设置下载依赖jar。
注意,下载Scala的几个jar慢的很蛋疼,所以最好用其他方式先把对应的jar包下载.
http://repo1.maven.org/maven2/org/scala-lang/scala-reflect/2.10.4/scala-reflect-2.10.4.jar http://repo1.maven.org/maven2/org/scala-lang/scala-compiler/2.10.4/scala-compiler-2.10.4.jar http://repo1.maven.org/maven2/org/scala-lang/scala-library/2.10.4/scala-library-2.10.4.jar
.ivy2\cache\org.scala-lang\scala-library\jars
.ivy2\cache\org.scala-lang\scala-complier\jars
.ivy2\cache\org.scala-lang\scala-reflect\jars
gt; console
......
[info] downloading http://repo1.maven.org/maven2/org/mongodb/casbah-commons_2.10/2.7.2/casbah-commons_2.10-2.7.2.jar ...
[info] [SUCCESSFUL ] org.mongodb#casbah-commons_2.10;2.7.2!casbah-commons_2.10.jar (6072ms)
[info] downloading http://repo1.maven.org/maven2/org/mongodb/casbah-core_2.10/2.7.2/casbah-core_2.10-2.7.2.jar ...
[info] [SUCCESSFUL ] org.mongodb#casbah-core_2.10;2.7.2!casbah-core_2.10.jar (15255ms)
[info] downloading http://repo1.maven.org/maven2/org/mongodb/casbah-query_2.10/2.7.2/casbah-query_2.10-2.7.2.jar ...
[info] [SUCCESSFUL ] org.mongodb#casbah-query_2.10;2.7.2!casbah-query_2.10.jar (19410ms)
[info] downloading http://repo1.maven.org/maven2/org/mongodb/casbah-gridfs_2.10/2.7.2/casbah-gridfs_2.10-2.7.2.jar ...
[info] [SUCCESSFUL ] org.mongodb#casbah-gridfs_2.10;2.7.2!casbah-gridfs_2.10.jar (5611ms)
[info] downloading http://repo1.maven.org/maven2/com/github/nscala-time/nscala-time_2.10/1.0.0/nscala-time_2.10-1.0.0.jar
[info] [SUCCESSFUL ] com.github.nscala-time#nscala-time_2.10;1.0.0!nscala-time_2.10.jar (8390ms)
[info] downloading http://repo1.maven.org/maven2/org/slf4j/slf4j-api/1.6.0/slf4j-api-1.6.0.jar ...
[info] [SUCCESSFUL ] org.slf4j#slf4j-api;1.6.0!slf4j-api.jar (3815ms)
[info] downloading http://repo1.maven.org/maven2/org/mongodb/mongo-java-driver/2.12.2/mongo-java-driver-2.12.2.jar ...
[info] [SUCCESSFUL ] org.mongodb#mongo-java-driver;2.12.2!mongo-java-driver.jar (29425ms)
[info] downloading http://repo1.maven.org/maven2/joda-time/joda-time/2.3/joda-time-2.3.jar ...
[info] [SUCCESSFUL ] joda-time#joda-time;2.3!joda-time.jar (29542ms)
[info] downloading http://repo1.maven.org/maven2/org/joda/joda-convert/1.2/joda-convert-1.2.jar ...
[info] [SUCCESSFUL ] org.joda#joda-convert;1.2!joda-convert.jar (2633ms)
Welcome to Scala version 2.10.4 (Java HotSpot(TM) Client VM, Java 1.7.0_40).
Type in expressions to have them evaluated
Type :help for more information.
gt;
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 | gt; console ...... [info] downloading http://repo1.maven.org/maven2/org/mongodb/casbah-commons_2.10/2.7.2/casbah-commons_2.10-2.7.2.jar ... [info] [SUCCESSFUL ] org.mongodb#casbah-commons_2.10;2.7.2!casbah-commons_2.10.jar (6072ms) [info] downloading http://repo1.maven.org/maven2/org/mongodb/casbah-core_2.10/2.7.2/casbah-core_2.10-2.7.2.jar ... [info] [SUCCESSFUL ] org.mongodb#casbah-core_2.10;2.7.2!casbah-core_2.10.jar (15255ms) [info] downloading http://repo1.maven.org/maven2/org/mongodb/casbah-query_2.10/2.7.2/casbah-query_2.10-2.7.2.jar ... [info] [SUCCESSFUL ] org.mongodb#casbah-query_2.10;2.7.2!casbah-query_2.10.jar (19410ms) [info] downloading http://repo1.maven.org/maven2/org/mongodb/casbah-gridfs_2.10/2.7.2/casbah-gridfs_2.10-2.7.2.jar ... [info] [SUCCESSFUL ] org.mongodb#casbah-gridfs_2.10;2.7.2!casbah-gridfs_2.10.jar (5611ms) [info] downloading http://repo1.maven.org/maven2/com/github/nscala-time/nscala-time_2.10/1.0.0/nscala-time_2.10-1.0.0.jar [info] [SUCCESSFUL ] com.github.nscala-time#nscala-time_2.10;1.0.0!nscala-time_2.10.jar (8390ms) [info] downloading http://repo1.maven.org/maven2/org/slf4j/slf4j-api/1.6.0/slf4j-api-1.6.0.jar ... [info] [SUCCESSFUL ] org.slf4j#slf4j-api;1.6.0!slf4j-api.jar (3815ms) [info] downloading http://repo1.maven.org/maven2/org/mongodb/mongo-java-driver/2.12.2/mongo-java-driver-2.12.2.jar ... [info] [SUCCESSFUL ] org.mongodb#mongo-java-driver;2.12.2!mongo-java-driver.jar (29425ms) [info] downloading http://repo1.maven.org/maven2/joda-time/joda-time/2.3/joda-time-2.3.jar ... [info] [SUCCESSFUL ] joda-time#joda-time;2.3!joda-time.jar (29542ms) [info] downloading http://repo1.maven.org/maven2/org/joda/joda-convert/1.2/joda-convert-1.2.jar ... [info] [SUCCESSFUL ] org.joda#joda-convert;1.2!joda-convert.jar (2633ms) Welcome to Scala version 2.10.4 (Java HotSpot(TM) Client VM, Java 1.7.0_40). Type in expressions to have them evaluated Type :help for more information. gt; |
scala>import com.mongodb.casbah.Imports._
import com.mongodb.casbah.Imports._
scala>val mongoClient=MongoClient("192.168.17.202");
mongoClient: com.mongodb.casbah.MongoClient = com.mongodb.casbah.MongoClient@c2512d
# 或者使用URI的方式登录
scala> val rs1 = new ServerAddress("192.168.17.202", 27017)
scala> val mongoClient = MongoClient(uri)
mongoClient: com.mongodb.casbah.MongoClient = com.mongodb.casbah.MongoClient@2c304d</td>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | scala>import com.mongodb.casbah.Imports._ import com.mongodb.casbah.Imports._ scala>val mongoClient=MongoClient("192.168.17.202"); mongoClient: com.mongodb.casbah.MongoClient = com.mongodb.casbah.MongoClient@c2512d # 或者使用URI的方式登录 scala> val rs1 = new ServerAddress("192.168.17.202", 27017) scala> val mongoClient = MongoClient(uri) mongoClient: com.mongodb.casbah.MongoClient = com.mongodb.casbah.MongoClient@2c304d</td> |
resolvers += "Sonatype snapshots" at "https://oss.sonatype.org/content/repositories/snapshots/"
addSbtPlugin("com.github.mpeltonen" % "sbt-idea" % "1.6.0")
重启IDEA,进入sbt console,sbt会自动更新插件。(Windows下如果没有更新,可以安装个sbt的MSI包并在terminal中打开sbt)
...
[info] Loading global plugins from C:\Users\Luffy\.sbt\0.13\plugins
[info] Updating {file:/C:/Users/Luffy/.sbt/0.13/plugins/}global-plugins...
[info] Resolving com.github.mpeltonen#sbt-idea;1.6.0 ...
......
[info] downloading http://repo1.maven.org/maven2/com/github/mpeltonen/sbt-idea_2
.10_0.13/1.6.0/sbt-idea-1.6.0.jar ...
[info] [SUCCESSFUL ] com.github.mpeltonen#sbt-idea;1.6.0!sbt-idea.jar (10511ms)
[info] Done updating.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | ... [info] Loading global plugins from C:\Users\Luffy\.sbt\0.13\plugins [info] Updating {file:/C:/Users/Luffy/.sbt/0.13/plugins/}global-plugins... [info] Resolving com.github.mpeltonen#sbt-idea;1.6.0 ... ...... [info] downloading http://repo1.maven.org/maven2/com/github/mpeltonen/sbt-idea_2 .10_0.13/1.6.0/sbt-idea-1.6.0.jar ... [info] [SUCCESSFUL ] com.github.mpeltonen#sbt-idea;1.6.0!sbt-idea.jar (10511ms) [info] Done updating. |
External Libraries下会出现sbt的libraryDependencies
OK,配置完成。
下面在该sbt项目src/main/scala下创建一个scala object对象helloIDEA
/**
* Created by Luffy on 2014/5/29.
*/
object helloIDEA {
def main(args: Array[String]) = {
println("hello, IDEA")
}
}
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | /** * Created by Luffy on 2014/5/29. */ object helloIDEA { def main(args: Array[String]) = { println("hello, IDEA") } } |
> compile
[info] Compiling 1 Scala source to C:\Users\Luffy\IdeaProjects\sbtFirst\target\scala-2.10\classes...
[success] Total time: 1 s, completed 2014-5-29 16:24:07
> run
[info] Running helloIDEA
hello, IDEA
[success] Total time: 0 s, completed 2014-5-29 16:24:10
1 2 3 4 5 6 7 8 9 10 11 12 13 | > compile [info] Compiling 1 Scala source to C:\Users\Luffy\IdeaProjects\sbtFirst\target\scala-2.10\classes... [success] Total time: 1 s, completed 2014-5-29 16:24:07 > run [info] Running helloIDEA hello, IDEA [success] Total time: 0 s, completed 2014-5-29 16:24:10 |
相关文章推荐
- AJAX跨域访问
- sql 查询 空表
- LIBSVM在matlab下的使用安装
- 配置IntelliJ IDEA 13的SBT和Scala开发环境
- iOS中关于设置UIButton文字和图标对齐格式的问题
- 浏览器打印错误:TypeError: Cannot read property 'parentNode' of undefined
- PHP过滤非中文字符
- zabbix 部署
- Spring、Spring依赖注入与编码剖析Spring依赖注入的原理
- iOS开源系列——OC框架排名列表
- MySQL忘记密码怎么办?
- Git和Mercurial(Hg)的分析
- iOS CoreData查询结果排序
- c++因为函数名字修饰引起的链接错误
- [Linux] - 定时任务crontab
- Mini2440 NAND Flash控制器操作实例
- leetcode day1
- Spring、Spring依赖注入与编码剖析Spring依赖注入的原理
- 发现一个nginx LUA开发Web App的框架
- 内存管理 ARC