要作scala開發,sbt是繞不過去的一個坎,裏面有許多坑,接下來看我怎麼一一解決。windows
Q: 首次執行sbt,程序停着不動,是個什麼狀況?緩存
A: 通常來講,這就是網絡不是很通暢所致使的。簡單的方法,換一個地方上網。例如:我發現家裏的聯通寬帶不行,因而我改到星巴克,用電信的免費wifi,結果就搞定了。服務器
Q: 公司裏訪問Internet須要通過Microsoft ISA代理服務器,windows如何配置SBT1.0之後的版本?網絡
A: 簡單作法,包括如下2步:dom
下載cntlm,作一個二級代理,避免sbt訪問isa proxy須要身份驗證的問題。maven
cntlm -d my_domain_name -f -I -l 1119 -u mac proxy.sample.com:8080
修改sbtconfig.txt文件,該文件在%SBT_HOME%\conf\ 下。例如個人文件就在D:\Program Files (x86)\sbt\confide
-Dhttp.proxyHost=127.0.0.1 -Dhttp.proxyPort=1119 -Dhttps.proxyHost=127.0.0.1 -Dhttps.proxyPort=1119
3. 正常執行sbt,應該就能夠訪問外網了。
Q: 公司裏沒法訪問外網,windows如何配置SBT1.0之後的版本?ui
A: 這個就比較複雜了,涉及到創建代理軟件倉庫的問題。不過咱們仍是能夠儘可能簡化一下。scala
代理軟件倉庫,能夠建得很複雜,有一整套管理軟件+Web Server,也能夠作得很簡單,就是利用maven的本地緩存文件目錄.m2來提供軟件服務。代理
假設本地Maven緩存目錄爲 d:\users\mac.m2 , 爲了使用這個目錄爲sbt提供服務,須要作如下幾步。
-Dsbt.override.build.repos=true #新增這一行,直接致使用戶在build.sbt中對repo的設置失效
[repositories] ali: http://maven.aliyun.com/nexus/content/groups/public/ #能夠直接使用ali的mvn庫,若是可以連得上 maven-local #若是無法用sbt直連,那麼用mvn來下載依賴包,而後從mvn的本地緩存(.m2文件夾)獲取依賴包 local #這個表示用.ivy2文件夾做爲軟件倉庫
建立項目目錄,例如demo-proj,及demo-proj\project,並建立demo-proj\project\build.properties
sbt.version=1.0.2 #這個要求用戶使用sbt 1.0.2,若是用0.13的sbt,後面會有問題。
作完以上3步,應該就能夠正常使用sbt了。sbt會從.m2文件找各類jar包,若是找不到,就會報錯。此時就能夠用maven來完善.m2文件裏的內容。
補充一下,假設\windowsserver\users\mac.m2可以正常從互聯網獲取最新的jar包,並且也能夠被開發機所訪問到,則能夠經過robocopy實現兩臺機器間目錄的快速複製。
robocopy \\windowsserver\users\mac\.m2\repository d:\users\mac\.m2\repository /MIR