最近朋友想用scala作web項目,我的研究了下,搭建了個scala的研發環境(ubuntu),網上資料不少不許確也比較老,在此作個備忘。html
最先是看的哪一個網頁的忘記了,臨時根據https://www.oschina.net/translate/tutorial-getting-started-scala-and-scalatra-part-i來配置下:java
scala的web框架很少,我也就知道Finatra,Play Framework,Scalatra,Spray,都不瞭解,隨便選的scalatra。mysql
1.安裝sbtgit
沒難度,直接參考官方文檔,http://www.scala-sbt.org/0.13/docs/Installing-sbt-on-Linux.htmlgithub
2.安裝scalatraweb
官方文檔打不開,只有靠百度出來的了。。。sql
curl https://raw.github.com/n8han/conscript/master/setup.sh | sh cs n8han/giter8
問題就出如今這了,在這以前須要安裝其餘的,可是真忘記了。。。根據錯誤提示+百度吧ubuntu
3.建立scalatra項目框架
g8 scalatra/scalatra-sbt
4.啓動eclipse
./sbt
注意,好多寫的是
container:start
實際上已經更新成jetty run了
實在是沒有找到地方修改jetty的啓動端口
5.IDE
我直接官網上下的eclipse版本,不過用了下感受問題很多,大部分狀況不能正確import,須要手動去敲,因爲scala可使用java的類庫,因此代碼提示那好多類和方法看着頭疼,ide極度不完善,和記事本寫差很少。
6.sbt的eclipse
須要再安裝一個sbt的eclipse插件,來把剛纔的scala項目生成eclipse相關文件,在eclipse中導入
7.依賴引入
和maven差很少,直接均可以查找到sbt的寫法,加入sbt中便可
8.DB
沒有找到啥原生的,我也就網上隨便找了個jdbc鏈接寫了個,注意別忘記引入mysql的依賴就行了
寫在最後,scala用了半天的感覺:
1.IDE極度不完善
2.sbt不知道是否有maven裏面mirror一類的概念,否則下國外的一大堆jar,我就hehe了
3.scala感受像是各類語言的柔和,oo和函數式的風格都支持,而後語法特別靈活,團隊沒有一個約定的話風格差別會很是大,不一樣人會很難看懂
4.編譯速度不敢認同,就一個hello world,4個類,編譯了7秒,後面文件多了的話不敢想象
5.版本兼容,ide官網最新是2.11,sbt是2.12,而後才寫了幾個hello world就發現有的sbt能編譯經過,ide裏面報錯,有的ide經過,sbt報錯
6.說是無縫對接java,可是java都有了,爲啥還要重複在scala裏面從新造次輪子
7.過於靈活的,不一樣人寫出來的代碼質量差別會很是大,以爲只能小團隊使用
8.效率,scala最後都是編譯成class運行在jvm中,我不相信能有太大的差異
總結:沒有深刻使用,也許某些特定狀況和特定人羣適用,web不適用