[沒打算用idea,就總結下eclipse中如何構建和開發scala項目]
1.基本概念
scala 一種語法。(類似java) http://www.scala-lang.org/
sbt 一個構建工具。(類似maven,gradle,ant等) http://www.scala-sbt.org/
eclipse 。。這傢伙只有scala開發環境的插件,可以構建scala project,但是沒有sbt 插件。。就像沒有maven插件的eclipse,只能構建和編輯java project,但是整不了maven project.
2.步驟。
@構建Scala語言環境
和java一樣,分兩步,下載軟件,和配置HOME和Path.
@安裝SBT 工具
下載、配置全局變量(在windows環境中添加sbt.bat腳本,可以直接運行)
@使用SBT生成一個類似maven 包結構的scala project
3.實際操作
@新建一個目錄叫 test
@在test目錄中新建文件build.sbt
@在test目錄新建project目錄,進入project目錄,並新建plugins.sbt,在其中添加
addSbtPlugin("com.typesafe.sbteclipse" % "sbteclipse-plugin" % "2.4.0")
@在build.sbt中配置工程的name,scala編譯環境,依賴等等。如:
import sbt._
import Process._
import Keys._
EclipseKeys.createSrc := EclipseCreateSrc.Default + EclipseCreateSrc.Resource
lazy val commonSettings = Seq(
name := "test",
organization := "com.marsyoung",
version := "0.0.1-SNAPSHOT",
scalaVersion := "2.11.7"
)
lazy val root = (project in file(".")).
settings(commonSettings: _*).
settings(
libraryDependencies ++= Seq(
"junit" % "junit" % "4.4",
"javax.ws.rs" % "jsr311-api" % "1.1.1"
)
)
@在cmd中進入對應的project目錄,即test目錄。運行sbt。
@執行eclipse命令,將對應的項目轉化成可以引入eclipse並且目錄結構類似maven的項目。
@打開已經安裝了scala ide的eclipse,導入對應的project,會自動的編譯成scala peoject.
4.Tips:
SBT配置使其支持本地maven和私服,如下:
在用戶根目錄下的.sbt文件夾內,在windows下就是C->用戶->用戶名->.sbt目錄下新建repositories文件並插入內容:
[repositories]
local
activator-launcher-local: file:////${activator.local.repository-${activator.home-${user.home}/.activator}/repository}, [organization]/[module]/(scala_[scalaVersion]/)(sbt_[sbtVersion]/)[revision]/[type]s/[artifact](-[classifier]).[ext]
activator-local: file:////${activator.local.repository-D:/maven/repo3.3.1}
sohu-public: http://xxx.com/nexus/content/groups/public
typesafe-releases: http://repo.typesafe.com/typesafe/releases
typesafe-ivy-releasez: http://repo.typesafe.com/typesafe/ivy-releases, [organization]/[module]/(scala_[scalaVersion]/)(sbt_[sbtVersion]/)[revision]/[type]s/[artifact](-[classifier]).[ext]
sonatype-oss-releases
sonatype-oss-snapshots
maven-central
本地maven地址爲:
D:/maven/repo3.3.1
nexus私服地址爲:
http://xxx.com/nexus/content/groups/public
有點不爽的是,如果有新的依賴或者包需要引入,在eclipse中不會自動編譯,還得手動的去sbt控制檯去compile和eclipse。
希望過段時間會有sbt的插件吧。(2015-12-24 )