Scala似乎在國外很紅啊,很多雲端應用也有採用scala做為開發語言,甚至號稱R版的java在統計功能開發上似乎很好用,在資料科學年會上講者大力推薦還說用了就回不去java啦,似乎看到了許多可能性,所以也想來學著使用,只是中文資料少啊,其實跟java有本質上的差異,所以很花時間在學習,但是語言本身倒不是難懂。
我是升級控啊差點搞死自己....這邊練習直接用上最新版的啊Scala 2.11.4
安裝IntelliJ
先到IntelliJ官網下載吧,剛好也出新版的也玩一下
安裝步驟很簡單就下一步道安裝完成吧
開啟並安裝外掛
新啟動畫面好看不少
這是新的介面
外掛管理功能藏到右下腳Configure裡面了
開啟Plugins功能
開啟Browse JetBrains Plugins並搜尋scala
點下去安裝就可以了
完成後回到前一頁Plugins再開啟Browse Repositories並搜尋sbt
一樣點下去安裝
離開套件管理器的時候會需要重啟
建立spray、akka專案
選擇Create New Project
選擇scala專案並使用sbt工具
舉例來說我建立了一個scala1的專案
一開始還會需要下載一些套件等下載完再看就是正常的
整個專案結構如下
先增加外掛喔,但是不知道為什麼每行指令中間要留一行,不然會錯誤
logLevel := Level.Warn
addSbtPlugin("io.spray" % "sbt-revolver" % "0.7.1")
addSbtPlugin("com.timushev.sbt" % "sbt-updates" % "0.1.2")
再來修改build.sbt
name := "scala1"
version := "1.0"
scalaVersion := "2.11.4"
scalacOptions := Seq("-unchecked", "-deprecation", "-encoding", "utf8")
resolvers ++= Seq(
"Typesafe repository" at "http://repo.typesafe.com/typesafe/releases/",
"Spray repository" at "http://repo.spray.io/"
)
libraryDependencies ++= {
val akkaV = "2.3.7"
val sprayV = "1.2.0"
Seq(
//"org.java-websocket" % "Java-WebSocket" % "1.3.1",
"org.json4s" % "json4s-native_2.11" % "3.2.11",
"io.spray" % "spray-json_2.11" % "1.3.1",
"io.spray" % "spray-can_2.11" % "1.3.2",
"io.spray" % "spray-routing_2.11" % "1.3.2",
"com.typesafe.akka" % "akka-actor_2.11" % akkaV,
"com.typesafe.akka" % "akka-testkit_2.11" % akkaV % "test",
"io.spray" % "spray-testkit_2.11" % "1.3.2" % "test",
"org.scalatest" % "scalatest_2.11" % "2.2.2" % "test",
"junit" % "junit" % "4.11" % "test",
//"org.specs2" % "specs2_2.11" % "2.4.13" % "test",
"org.specs2" % "specs2-core_2.11" % "2.4.13" % "test"
)
}
因為scala版本用最新的,整個相依性都要變動,一直試了很久
specs2會相依這個套件(scalaz-stream),但是這套件沒有scala 2.11版啊
所以會出現錯誤
sbt.ResolveException: unresolved dependency: org.scalaz.stream#scalaz-stream_2.11;0.5a: not found
at sbt.IvyActions$.sbt$IvyActions$$resolve(IvyActions.scala:217)
at sbt.IvyActions$$anonfun$update$1.apply(IvyActions.scala:126)
所以改成specs2-core_2.11,是參考這邊的specs2 で unresolved dependency: org.scalaz.stream#scalaz-stream_2.11;0.5a: not found
目前看來環境OK啦,希望後面不會有雷XD
之後再來試框架
套件庫
spray-template
使用Spray.io搭建Rest服务
sprayでwebサービス作るチュートリアル 第2回