为什么sbt尝试下载不存在的依赖项?

时间:2017-04-24 13:15:59

标签: scala sbt

我已经下载了SBT 0.3.15并且我正在尝试运行它:现在,我只想运行SBT并获得提示;我还没有进入我想要建立一个项目的阶段(尽管我希望能够很快完成)。

但是,我遇到了SBT尝试下载的奇怪依赖项问题。我最初遇到代理问题,但现在好了。 SBT尝试下载的第一件事是jansi-project 1.11的pom.xml,它可以工作:

downloading https://repo1.maven.org/maven2/org/fusesource/jansi/jansi/1.11/jansi-1.11.pom ...
    Maven Central: downloading https://repo1.maven.org/maven2/org/fusesource/jansi/jansi/1.11/jansi-1.11.pom
        to C:\Users\vfuchs070114\.ivy2\cache\org.fusesource.jansi\jansi\ivy-1.11.xml.original.part
sha1 file found for https://repo1.maven.org/maven2/org/fusesource/jansi/jansi/1.11/jansi-1.11.pom: checking...
    Maven Central: downloading https://repo1.maven.org/maven2/org/fusesource/jansi/jansi/1.11/jansi-1.11.pom.sha1
    to C:\Users\VFUCHS~1\AppData\Local\Temp\ivytmp1821470066062959950sha1
sha1 OK for https://repo1.maven.org/maven2/org/fusesource/jansi/jansi/1.11/jansi-1.11.pom
[SUCCESSFUL ] org.fusesource.jansi#jansi;1.11!jansi.pom(pom.original) (1085ms)

它试图下载的下一个文件是来自Maven central repo的fusesource-pom-1.8.jar:

HTTP response status: 404 url=https://repo1.maven.org/maven2/org/fusesource/fusesource-pom/1.8/fusesource-pom-1.8.jar
CLIENT ERROR: Not Found url=https://repo1.maven.org/maven2/org/fusesource/fusesource-pom/1.8/fusesource-pom-1.8.jar

还有以下几点:

然后它失败了......因为即使通过我的浏览器我也看不到这些URL上的任何可用内容,我排除了代理配置问题。

我应该如何获得这些依赖关系,从哪里来?

由于

1 个答案:

答案 0 :(得分:0)

经过几天的努力,我没有得到我问题的确切答案,但我已经找到了解决方法。

  1. 通过公司代理下载依赖关系并不起作用,我不知道为什么。我配置SBT具有与我配置git相同的属性:我能够克隆GitHub项目,但SBT无法获得依赖项。在SBT日志中没有足够的特定信息来调查任何事情,所以我放弃了这个选项。

  2. 我们将Nexus作为内部工件和外部存储库的代理。我要求负责它的团队在我们的Nexus上创建一个新的存储库,镜像https://dl.bintray.com/typesafe/ivy-releases/,然后在我的配置中添加内部存储库URL,如下所示:http://www.scala-sbt.org/0.13/docs/Proxy-Repositories.html

    maven-internal-thirdparty-proxy: internal_proxy_url, [organization]/[module]/[revision]/[type]s/[artifact](-[classifier]).[ext], bootOnly
    
    ivy-internal-typesafe-proxy: internal_proxy_url, [organization]/[module]/[revision]/[type]s/[artifact](-[classifier]).[ext], bootOnly
    
  3. 我不得不删除我最初放置的互联网代理配置,以确保SBT没有尝试通过互联网代理来访问内部代理回购。