Sbt 使用技巧

要作scala開發,sbt是繞不過去的一個坎,裏面有許多坑,接下來看我怎麼一一解決。windows

sbt 之 網絡問題

Q: 首次執行sbt,程序停着不動,是個什麼狀況?緩存

A: 通常來講,這就是網絡不是很通暢所致使的。簡單的方法,換一個地方上網。例如:我發現家裏的聯通寬帶不行,因而我改到星巴克,用電信的免費wifi,結果就搞定了。服務器

sbt 1.0+ 之 repository

Q: 公司裏訪問Internet須要通過Microsoft ISA代理服務器,windows如何配置SBT1.0之後的版本?網絡

A: 簡單作法,包括如下2步:dom

  1. 下載cntlm,作一個二級代理,避免sbt訪問isa proxy須要身份驗證的問題。maven

    cntlm -d my_domain_name -f -I -l 1119 -u mac proxy.sample.com:8080
  2. 修改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提供服務,須要作如下幾步。

  1. 修改%SBT_HOME%\conf\sbtconfig.txt文件,新增一行
-Dsbt.override.build.repos=true  #新增這一行,直接致使用戶在build.sbt中對repo的設置失效
  1. 在%USERPROFILE%.sbt目錄下,新增文件repositories
[repositories]
    ali: http://maven.aliyun.com/nexus/content/groups/public/  #能夠直接使用ali的mvn庫,若是可以連得上
    maven-local   #若是無法用sbt直連,那麼用mvn來下載依賴包,而後從mvn的本地緩存(.m2文件夾)獲取依賴包
    local               #這個表示用.ivy2文件夾做爲軟件倉庫
  1. 建立項目目錄,例如demo-proj,及demo-proj\project,並建立demo-proj\project\build.properties

    sbt.version=1.0.2 #這個要求用戶使用sbt 1.0.2,若是用0.13的sbt,後面會有問題。

  2. 作完以上3步,應該就能夠正常使用sbt了。sbt會從.m2文件找各類jar包,若是找不到,就會報錯。此時就能夠用maven來完善.m2文件裏的內容。

  3. 補充一下,假設\windowsserver\users\mac.m2可以正常從互聯網獲取最新的jar包,並且也能夠被開發機所訪問到,則能夠經過robocopy實現兩臺機器間目錄的快速複製。

robocopy \\windowsserver\users\mac\.m2\repository d:\users\mac\.m2\repository /MIR
相關文章
相關標籤/搜索