如何在Windows 7中使用代理后面的sbt?

时间:2014-11-25 13:11:00

标签: windows-7 sbt http-proxy

我正在尝试在 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是否尝试使用代理,还是存在其他问题?

4 个答案:

答案 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代理变量:

  • https.proxyHost
  • https.proxyPort

我猜你可以尝试与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。

参考:https://github.com/sbt/sbt/issues/4307