我正在尝试在 Windows 7 上运行SBT
。为此,我按照类似线程" How to use sbt from behind proxy?"。
我有以下相关的"系统变量":
变量名称:
JAVA_OPTS
变量值:
-Dhttp.proxySet=true -Dhttp.proxyHost=192.168.0.150 -Dhttp.proxyPort=8080
变量名称:
SBT_OPTS
变量值:
-Dhttp.proxySet=true -Dhttp.proxyHost=192.168.0.150 -Dhttp.proxyPort=8080
和
变量名称:
SBT_HOME
变量值:
C:\Program Files (x86)\sbt\
我还更改了C:\Program Files (x86)\sbt\conf\sbtconfig.txt
***** sbtconfig.txt BEGINNING *****
*将java args设置为高
-Xmx512M
-XX:MaxPermSize参数=256米
-XX:ReservedCodeCacheSize =128米
*设置额外的SBT选项
-Dsbt.log.format =真
*设置代理
-Dhttp.proxySet =真
-Dhttp.proxyHost = 192.168.0.150
-Dhttp.proxyPort = 8080
***** sbtconfig.txt END *****
正在运行cmd.exe
我输入了sbt
。 cmd回声
获取org.fusesource.jansi jansi 1.11 ....
大约1分钟后,我收到很多警告和错误,如:
[...]
::::错误服务器访问错误:连接超时:连接 URL = https://repo.typesafe.com/typesafe/ivy-releases/org.fusesource.jansi/jansi/1.11.ivys/ivy.xml
[...]
这与我没有代理设置完全相同。当我在浏览器中输入上述地址时,我感到很惊讶,我得到的只是:
*****浏览器显示BEGINNING *****
{
"错误" :[{
"状态" :404,
"消息" :"找不到文件。"
}]
}
*****浏览器显示END *****
如何判断SBT是否尝试使用代理,还是存在其他问题?
答案 0 :(得分:19)
感谢Paweł的回答。
这是我发现的:
“-Dhttp.proxySet=true
”对我没有任何影响(至少对我而言)
按以下顺序对设置进行优先排序:
SBT_OPTS覆盖JAVA_OPTS覆盖%SBT_HOME%conf \ sbtconfig.txt
解决方案要么设置一个环境变量
JAVA_OPTS=-Dhttp.proxyHost=192.168.0.150 -Dhttp.proxyPort=8080 -Dhttps.proxyHost=192.168.0.150 -Dhttps.proxyPort=8080 -Dhttp.nonProxyHosts=localhost
OR
SBT_OPTS=-Dhttp.proxyHost=192.168.0.150 -Dhttp.proxyPort=8080 -Dhttps.proxyHost=192.168.0.150 -Dhttps.proxyPort=8080 -Dhttp.nonProxyHosts=localhost
或者编辑%SBT_HOME%conf \ sbtconfig.txt文件:
***** sbtconfig.txt BEGINNING (hashtags in this file have been replaced by stars) *****
*Set the java args to high
-Xmx512M
*-XX:MaxPermSize=256m
-XX:ReservedCodeCacheSize=128m
*Set the extra SBT options
-Dsbt.log.format=true
*Proxy settings
-Dhttp.proxyHost=192.168.0.150
-Dhttp.proxyPort=8080
-Dhttps.proxyHost=192.168.0.150
-Dhttps.proxyPort=8080
***** sbtconfig.txt END *****
答案 1 :(得分:4)
让我们来看看你的错误:
:::: ERRORS Server access Error: Connection timed out: connect url=https://repo.typesafe.com/typesafe/ivy-releases/org.fusesource.jansi/jansi/1.11.ivys/ivy.xml
Sbt正在尝试使用https,但您没有代理配置。 尝试设置https代理变量:
我猜你可以尝试与http代理相同的值。
答案 2 :(得分:3)
转到SBT文件夹并使用以下命令
set SBT_OPTS=-Dhttp.proxyHost=10.10.10.154 -Dhttp.proxyPort=8080 -Dhttps.proxyHost=10.10.10.154 -Dhttps.proxyPort=8080 -Dhttp.nonProxyHosts=localhost <Enter your IP settings >
然后
sbt.bat
答案 3 :(得分:0)
sbt使用Gigahorse和OkHttp进行并行下载。您可以尝试通过传递-Dsbt.gigahorse = false来关闭它。
您可以尝试的另一件事是关闭https,并通过传递-Dsbt.repository.secure = false
来使用http。