之前一直使用maven打包 java項(xiàng)目陶珠,所以一直很懶惰犯犁,還打算使用maven來(lái)管理scala項(xiàng)目,結(jié)果昨天晚上 就一直被項(xiàng)目的build卡住了号胚,卡了三個(gè)小時(shí)籽慢,非常浪費(fèi)時(shí)間。
今天來(lái)到公司猫胁,感慨箱亿,既然 sbt是scala的御用打包管理工具,就用sbt弃秆,雖然比較抵觸届惋,但是不學(xué)是不可能的,sbt按道理也是比較簡(jiǎn)單的菠赚。后來(lái)在使用中 確實(shí)不是 很難
在使用IDEA ?創(chuàng)建基于sbt 的scala項(xiàng)目中脑豹,確實(shí)遇到里一些小的問(wèn)題,但是如果處理好了衡查,這些都是非常簡(jiǎn)單瘩欺,迅速進(jìn)入到開(kāi)發(fā)中。
中間 遇到的問(wèn)題 拌牲,
1.sbt首次時(shí)候 俱饿,下載 解壓 ?配置環(huán)境 變量,首次創(chuàng)建sbt項(xiàng)目塌忽,sbt會(huì)下載很多依賴拍埠,大概需要二十分鐘左右,再下次創(chuàng)建sbt 會(huì)非惩辆樱快
默認(rèn)情況下 jdk ?sbt ?scala sdk 都會(huì)被統(tǒng)統(tǒng)引入進(jìn)來(lái)枣购,
假如 沒(méi)有正確引入,可以在菜單欄装盯,【File】-【Project Structure】設(shè)置 【Global Libraries】和【Modeles】【Libraries】從新引入對(duì)應(yīng)的sdk
2.引入依賴坷虑,下載失敗,在引入一些 springframework的jar包埂奈,在build.sbt,填寫(xiě)了依賴項(xiàng)迄损,但是并沒(méi)有開(kāi)始自動(dòng)下載相關(guān)jar 包,后來(lái)在sbt的命令行交互環(huán)境compile中發(fā)現(xiàn)账磺,springframework 5 版本下載失敗芹敌,但是springwork 4的版本是可以下載痊远,這種情況要么修改 sbt 倉(cāng)庫(kù)地址,要么就是選擇可以下載的內(nèi)容氏捞。另外為了 方便 sbt的 編譯 打包 ?自動(dòng)下載依賴碧聪,建議 開(kāi)啟 sbt view ?,在 菜單欄的 view 中選擇 tool window 選擇 ?sbt液茎,即可開(kāi)啟逞姿。并且自動(dòng)同步 下載依賴會(huì)比較方便
另外 開(kāi)啟 配置 ? sbt ?Task ,設(shè)置 編譯 compile 捆等,IDEA右上角部分 滞造,選擇 Edit Configurations,在彈層中的左上角 點(diǎn)擊 綠色的加號(hào),選擇 SBT Task,Tasks:對(duì)應(yīng)sbt命令栋烤,編譯就選擇填寫(xiě) 【compile】 谒养,【working directory】 選擇對(duì)應(yīng)的 scala的類文件,其他如果沒(méi)有額外配置可以不動(dòng)明郭,選擇 Apply买窟,即可使用。
如何運(yùn)行一個(gè)Scala的文件薯定,有時(shí)候會(huì)錯(cuò)誤的選擇 scala console 或者scala script始绍,但是都不對(duì),應(yīng)該是選擇Application 沉唠,這個(gè)可以在 Edit Configurations 中選擇【Application】疆虚,配置 【Main class】對(duì)應(yīng)的類文件苛败,和【working directory】满葛,【use classpath of module】,apply 即可啟用罢屈,
另外簡(jiǎn)單的就是 在項(xiàng)目文件目錄中嘀韧,右擊對(duì)應(yīng)的類文件,選擇【run ?**.scala】,切記 不要選擇有 美元$ 符號(hào)的缠捌,否則便是java編譯锄贷,會(huì)出現(xiàn)需要static method。
正常的基于sbt 的scala 項(xiàng)目 的文件目錄結(jié)構(gòu):
另外是 代碼層次的?
比如 繼承 ? 比如引入其他jar包
子類快速實(shí)現(xiàn) 父類的方法曼月,在子類 類名紅線處 谊却,alt + enter回車即可 ?快速實(shí)現(xiàn),
父類
子類
有時(shí) import 的 類的類路徑 ?import 語(yǔ)句是置灰的哑芹,說(shuō)明引入時(shí)是有問(wèn)題炎辨,需要 加引號(hào)或者其他大括號(hào)之類的
另外 是調(diào)試 ?Debug 狀態(tài),項(xiàng)目文件目錄 ?類文件 ?右鍵 ?Debug 即可
F8 往下走聪姿,F(xiàn)7進(jìn)入方法內(nèi)部
另外熟練常用的IDEA的一些快捷鍵非常有幫助
在新建的scala 項(xiàng)目中 嘗試 了 ?for循環(huán)遍歷碴萧,if 判斷乙嘀, 一些 函數(shù)式 lamabda 表達(dá)式。
代碼只有長(zhǎng)寫(xiě)才有可能熟練
碰見(jiàn) jvm不能運(yùn)行破喻,應(yīng)該是sbt 的jvm 的路徑錯(cuò)了虎谢, Terminal中 which java 找到 java 的全路徑,一般就是sbt的jvm路徑默認(rèn)錯(cuò)了曹质,少一個(gè)文件夾
idea? Cannot run program "/Library/Java/JavaVirtualMachines/jdk1.8.0_51.jdk/bin/java" (in directory