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
相关文章
相关标签/搜索