设置sbt代理
sbt默认并不读取环境变量http_proxy,而是使用java系统属性(property), 我们使用SBT_OPTS 进行设置,具体如下:
SBT_OPTS="$SBT_OPTS -Dhttp.proxyHost=proxy.xxx.com\
-Dhttp.proxyPort=xxx\
-Dhttp.proxyUser=username -Dhttp.proxyPassword=password"
注意:
http_proxyHost只需要设置代理主机名,不需要协议名,不能在前面有http://或者https://
http_proxyUser使用域账户名时,务必切记需要转义\字符,需要输入两个\\
建议把值放入引号内,尤其是密码包含#字符时,若没有引号,后面会当作注释而截取掉
SBT_OPTS需要export,务必保证sbt能够读取到,为了简易,可以直接编辑bin/sbt文件,在开头 加上:
export SBT_OPTS="$SBT_OPTS -Dhttp.proxyHost=proxy.xxx.com\
-Dhttp.proxyPort=xxx\
-Dhttp.proxyUser=CHINA\\username -Dhttp.proxyPassword=password"
验证是否成功:
sbt -v # 使用-v参数,输出系统变量
输出:
[process_args] java_version = '1.7.0_55'
# Executing command line:
java
-Dhttp.proxyHost=proxy.xxx.com
-Dhttp.proxyPort=xxx
-Dhttp.proxyUser=CHINA\username
-Dhttp.proxyPassword=password
-Xms1024m
-Xmx1024m
-XX:ReservedCodeCacheSize=128m
-XX:MaxPermSize=256m
-jar
/home/fgp/sbt/bin/sbt-launch.jar
请务必检查以上java属性是否设置正确,如果是第一次运行,会先下载sbt版本依赖库,可能堵塞几分钟, 需要耐心等下,如果没有抛超时异常,则说明配置成功!
如果使用socks代理
因为ss一般是socks代理,SBT_OPTS修改 http/https为socks代理时,通过sbt -v可以查看到
socks代理转换为http/https代理。手动设置代理,解决办法是:直接epxort JAVA_OPTS。
··· java -Dsocks.proxyHost=proxy.xxx.com -Dsocks.proxyPort=xxx -Xms1024m -Xmx1024m -XX:ReservedCodeCacheSize=128m -XX:MaxPermSize=256m -jar /home/fgp/sbt/bin/sbt-launch.jar
··· 测试可以成功。
解决办法是:直接epxort JAVA_OPTS。
···