首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >第一次使用SBT??在代理后发出检索依赖项。

第一次使用SBT??在代理后发出检索依赖项。
EN

Stack Overflow用户
提问于 2017-04-18 05:54:19
回答 4查看 4.5K关注 0票数 4

我已经下载了SBT (sbt-0.13.15.zip)并解压缩了它,但是在运行sbt.bat时我遇到了问题。

最初,我解决了代理问题,当我发现我只需要指定---- http 配置,而不是http -当两者都提供时,它采用了http,并且失败了。

因此,现在我不再有代理问题了,但是当试图获取jansi依赖项时,它失败了:

代码语言:javascript
复制
setting 'basedir' to 'C:\Users\vfuchs070114\.sbt\boot'
:: resolving dependencies :: org.scala-sbt#boot-jansi;1.0
    confs: [default]
    validate = true
    refresh = false
resolving dependencies for configuration 'default'
== resolving dependencies for org.scala-sbt#boot-jansi;1.0 [default]
loadData of org.scala-sbt#boot-jansi;1.0 of rootConf=default
== resolving dependencies org.scala-sbt#boot-jansi;1.0->org.fusesource.jansi#jansi;1.11 [default->default(compile)]
loadData of org.fusesource.jansi#jansi;1.11 of rootConf=default
    using redefined-public to resolve org.fusesource.jansi#jansi;1.11
redefined-public: Checking cache for: dependency: org.fusesource.jansi#jansi;1.11 {default=[default(compile)]}
redefined-public: no namespace defined: using system
    no ivy file in cache for org.fusesource.jansi#jansi;1.11: tried C:\Users\vfuchs070114\.ivy2\cache\org.fusesource.jansi\jansi\ivy-1.11.xml
redefined-public: no latest strategy defined: using default
local: no namespace defined: using system
    no ivy file in cache for org.fusesource.jansi#jansi;1.11: tried C:\Users\vfuchs070114\.ivy2\cache\org.fusesource.jansi\jansi\ivy-1.11.xml
     trying C:\Users\vfuchs070114\.ivy2\local\org.fusesource.jansi\jansi\1.11\ivys\ivy.xml
        tried C:\Users\vfuchs070114\.ivy2\local\org.fusesource.jansi\jansi\1.11\ivys\ivy.xml
    local: resource not reachable for org.fusesource.jansi#jansi;1.11: res=C:\Users\vfuchs070114\.ivy2\local\org.fusesource.jansi\jansi\1.11\ivys\ivy.xml
     trying C:\Users\vfuchs070114\.ivy2\local\org.fusesource.jansi\jansi\1.11\jars\jansi.jar
        tried C:\Users\vfuchs070114\.ivy2\local\org.fusesource.jansi\jansi\1.11\jars\jansi.jar
    local: resource not reachable for org.fusesource.jansi#jansi;1.11: res=C:\Users\vfuchs070114\.ivy2\local\org.fusesource.jansi\jansi\1.11\jars\jansi.jar
    local: no ivy file nor artifact found for org.fusesource.jansi#jansi;1.11
local-preloaded-ivy: no namespace defined: using system
    no ivy file in cache for org.fusesource.jansi#jansi;1.11: tried C:\Users\vfuchs070114\.ivy2\cache\org.fusesource.jansi\jansi\ivy-1.11.xml
     trying file:/C:/Users/vfuchs070114/.sbt/preloaded/org.fusesource.jansi/jansi/1.11/ivys/ivy.xml
        tried file:/C:/Users/vfuchs070114/.sbt/preloaded/org.fusesource.jansi/jansi/1.11/ivys/ivy.xml
    local-preloaded-ivy: resource not reachable for org.fusesource.jansi#jansi;1.11: res=file:/C:/Users/vfuchs070114/.sbt/preloaded/org.fusesource.jansi/jansi/1.11/ivys/ivy.xml
    local-preloaded-ivy: no ivy file found for org.fusesource.jansi#jansi;1.11
local-preloaded: no namespace defined: using system
    no ivy file in cache for org.fusesource.jansi#jansi;1.11: tried C:\Users\vfuchs070114\.ivy2\cache\org.fusesource.jansi\jansi\ivy-1.11.xml
     trying file:/C:/Users/vfuchs070114/.sbt/preloaded/org/fusesource/jansi/jansi/1.11/jansi-1.11.pom
        tried file:/C:/Users/vfuchs070114/.sbt/preloaded/org/fusesource/jansi/jansi/1.11/jansi-1.11.pom
    local-preloaded: resource not reachable for org/fusesource/jansi#jansi;1.11: res=file:/C:/Users/vfuchs070114/.sbt/preloaded/org/fusesource/jansi/jansi/1.11/jansi-1.11.pom
     trying file:/C:/Users/vfuchs070114/.sbt/preloaded/org/fusesource/jansi/jansi/1.11/jansi-1.11.jar
        tried file:/C:/Users/vfuchs070114/.sbt/preloaded/org/fusesource/jansi/jansi/1.11/jansi-1.11.jar
    local-preloaded: resource not reachable for org/fusesource/jansi#jansi;1.11: res=file:/C:/Users/vfuchs070114/.sbt/preloaded/org/fusesource/jansi/jansi/1.11/jansi-1.11.jar
    local-preloaded: no ivy file nor artifact found for org.fusesource.jansi#jansi;1.11
Maven Central: no namespace defined: using system
    no ivy file in cache for org.fusesource.jansi#jansi;1.11: tried C:\Users\vfuchs070114\.ivy2\cache\org.fusesource.jansi\jansi\ivy-1.11.xml
     trying https://repo1.maven.org/maven2/org/fusesource/jansi/jansi/1.11/jansi-1.11.pom
        tried https://repo1.maven.org/maven2/org/fusesource/jansi/jansi/1.11/jansi-1.11.pom
problem occurred while resolving dependency: org.fusesource.jansi#jansi;1.11 {default=[default(compile)]} with Maven Central: java.lang.RuntimeException: java.util.NoSuchElementException
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1453)
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1439)
    at sun.net.www.protocol.http.HttpURLConnection.getHeaderField(HttpURLConnection.java:2965)
    at java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:489)
    at sun.net.www.protocol.https.HttpsURLConnectionImpl.getResponseCode(HttpsURLConnectionImpl.java:338)
    at org.apache.ivy.util.url.BasicURLHandler.checkStatusCode(BasicURLHandler.java:130)
    at org.apache.ivy.util.url.BasicURLHandler.getURLInfo$57a0216e(BasicURLHandler.java:73)
    at org.apache.ivy.util.url.BasicURLHandler.getURLInfo(BasicURLHandler.java:54)
    at org.apache.ivy.plugins.repository.url.URLResource.init(URLResource.java:65)
    at org.apache.ivy.plugins.repository.url.URLResource.exists(URLResource.java:81)
    at org.apache.ivy.plugins.resolver.RepositoryResolver.findResourceUsingPattern(RepositoryResolver.java:97)
    at org.apache.ivy.plugins.resolver.AbstractPatternsBasedResolver.findResourceUsingPatterns(AbstractPatternsBasedResolver.java:96)
    at org.apache.ivy.plugins.resolver.IBiblioResolver.findIvyFileRef(IBiblioResolver.java:102)
    at org.apache.ivy.plugins.resolver.BasicResolver.getDependency(BasicResolver.java:228)
    at org.apache.ivy.plugins.resolver.IBiblioResolver.getDependency(IBiblioResolver.java:512)
    at org.apache.ivy.plugins.resolver.ChainResolver.getDependency(ChainResolver.java:104)
    at org.apache.ivy.core.resolve.IvyNode.loadData(IvyNode.java:169)
    at org.apache.ivy.core.resolve.VisitNode.loadData(VisitNode.java:292)
    at org.apache.ivy.core.resolve.ResolveEngine.fetchDependencies(ResolveEngine.java:714)
    at org.apache.ivy.core.resolve.ResolveEngine.doFetchDependencies(ResolveEngine.java:799)
    at org.apache.ivy.core.resolve.ResolveEngine.fetchDependencies(ResolveEngine.java:722)
    at org.apache.ivy.core.resolve.ResolveEngine.getDependencies(ResolveEngine.java:594)
    at org.apache.ivy.core.resolve.ResolveEngine.resolve(ResolveEngine.java:234)
    at xsbt.boot.Update.xsbt$boot$Update$$lockedApply(Update.scala:105)
    at xsbt.boot.Update$$anon$4.call(Update.scala:99)
    at xsbt.boot.Locks$GlobalLock.withChannel$1(Locks.scala:93)
    at xsbt.boot.Locks$GlobalLock.xsbt$boot$Locks$GlobalLock$$withChannelRetries$1(Locks.scala:78)
    at xsbt.boot.Locks$GlobalLock$$anonfun$withFileLock$1.apply(Locks.scala:97)
    at xsbt.boot.Using$.withResource(Using.scala:10)
    at xsbt.boot.Using$.apply(Using.scala:9)
    at xsbt.boot.Locks$GlobalLock.ignoringDeadlockAvoided(Locks.scala:58)
    at xsbt.boot.Locks$GlobalLock.withLock(Locks.scala:48)
    at xsbt.boot.Locks$.apply0(Locks.scala:31)
    at xsbt.boot.Locks$.apply(Locks.scala:28)
    at xsbt.boot.Update.apply(Update.scala:100)
    at xsbt.boot.Launch.update(Launch.scala:352)
    at xsbt.boot.Launch$$anonfun$jansiLoader$1.apply(Launch.scala:178)
    at scala.Option.getOrElse(Option.scala:120)
    at xsbt.boot.Launch.jansiLoader$2f324eef(Launch.scala:173)
    at xsbt.boot.Launch.<init>(Launch.scala:150)
    at xsbt.boot.Launcher$.apply(Launch.scala:366)
    at xsbt.boot.Launch$.apply(Launch.scala:18)
    at xsbt.boot.Boot$.runImpl(Boot.scala:41)
    at xsbt.boot.Boot$.main(Boot.scala:17)
    at xsbt.boot.Boot.main(Boot.scala)
Caused by: java.util.NoSuchElementException
    at java.util.StringTokenizer.nextToken(StringTokenizer.java:349)
    at sun.net.www.protocol.http.HttpURLConnection.doTunneling(HttpURLConnection.java:2016)
    at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:183)
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1511)
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1439)
    at java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:480)
    ... 41 more

它试图从存在的https://repo1.maven.org/maven2/org/fusesource/jansi/jansi/1.11/jansi-1.11.pom中获取数据,但似乎无法解析它或其他东西(StringTokenizer抛出的NoSuchElementException)。我试着把pom和jar文件放在本地文件中,它试图找到它们:它会找到它们,但最终不会有太大的区别。

类似的事情发生在类型化版本和sbt快照中,它试图从不存在的远程URL中获取一些常春藤信息:

所以在这种情况下,它失败并不是一个重大的意外。

知道有什么不对吗?

谢谢

============

编辑

我在这里看到https://github.com/typesafehub/activator/issues/18,这可能是Ipv4 / Ipv6的一个问题。我尝试将推荐的属性添加到IPv4 (-Djava.net.preferIPv4Stack=true)中,但仍然无法工作。

然而,我觉得根本原因可能是这样的,或者是一些编码问题,使得远程文件“不可解析”。

编辑2

昨天我花了一整天的时间手动获取依赖项,最后它仍然不起作用。然后,我在家里没有代理的情况下在电脑上试了试,它运行得很好。因此,现在我再次尝试,只关注运行sbt.bat :在java调用之前,我在sbt.bat中添加了一个"echo“,以确保它符合我的预期,而且它做到了:

代码语言:javascript
复制
"C:\Toolbox\apps\jdk\jdk1.8.0_25-windows-x64\bin\java.exe" -Dhttps.proxyHost=theProxyURL 
-Dhttps.proxyPort=8080 -Dhttps.proxyUser=myId -Dhttps.proxyPassword=myPassword
-cp "C:\Toolbox\apps\sbt-0.13.15_2ndTry\bin\sbt-launch.jar" xsbt.boot.Boot  

但我还是明白这个问题..。如果是颁发证书之类的,我应该得到一个更清楚的信息,对吗?

编辑3

我观察到的是,即使没有正确配置代理,我们也不会在日志中得到任何相关的消息。例如,通过故意提供不正确的代理设置(例如,不存在的代理主机),我们不会得到与配置正确值不同的消息。这使得调试非常不方便。

我发现的另一个问题是,即使正确配置密码,当密码包含感叹号时,修改后的版本也可能传递给SBT启动程序。我为此创造了一个问题:https://github.com/sbt/sbt/issues/3139。但即使在解决了这个问题之后,我仍然面临着一些问题。

实际上有几个与代理相关的公开问题:https://github.com/sbt/sbt/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20proxy

现在我要考虑的一件事是配置代理存储库:http://www.scala-sbt.org/0.13/docs/Proxy-Repositories.html (我们使用Nexus)

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2017-05-02 05:43:26

尽管我还没有找到我最初问题的确切答案,但我学到了一些东西:

  • 在企业internet代理背后使用SBT的解决办法是使用内部Nexus代理:为什么sbt试图下载不存在的依赖项?
  • SBT日志记录没有多大帮助,相同的错误消息可能有几十个失败的实际原因。
  • 根据配置的依赖库(http://www.scala-sbt.org/0.13/docs/Proxy-Repositories.html),SBT将根据各种命名约定(常春藤和Maven)尝试各种UR。这就是为什么有时候URL根本不存在的原因。
票数 2
EN

Stack Overflow用户

发布于 2017-09-27 14:59:41

如果您在windows代理(公司网络)后面:在sbt安装文件夹中,转到conf/sbtconfig.txt文件,只需添加以下行并保存并尝试。

代码语言:javascript
复制
-Dhttp.proxyHost=proxy
-Dhttp.proxyPort=portno
-Dhttp.proxyUser=UserId
-Dhttp.proxyPassword=Password

-Dhttps.proxyHost=proxyhost
-Dhttps.proxyPort=portno 
-Dhttps.proxyUser=UserId
-Dhttps.proxyPassword=Password

对于Linux/Unix:

代码语言:javascript
复制
export JAVA_OPTS="$JAVA_OPTS -Dhttp.proxyHost=proxyHost  -Dhttp.proxyPort=proxyPortNumber -Dhttp.proxyUser=UserId -Dhttp.proxyPassword=Password -Dhttps.proxyHost=proxyHost -Dhttps.proxyPort=proxyPortNumber  -Dhttps.proxyUser=UserId -Dhttps.proxyPassword=Password"

对我起作用了。

票数 1
EN

Stack Overflow用户

发布于 2018-12-14 13:59:38

确保您没有任何代理环境变量(http_proxy, https_proxy等)在正在执行sbt生成的框上设置。根据我的经验,如果您将SBT设置为从https (例如Nexus)上的代理回购下载依赖项,并且同时设置了https_proxy env,那么SBT可能会遇到问题。正如在文档中解释的那样,这些代理设置在运行SBT构建之前由sbt unset https_proxy自动获取。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43464585

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档