为什么sbt尝试解析/下载我已在本地拥有的工件?

时间:2015-10-05 19:53:32

标签: maven sbt ivy

我住在一个公司代理服务器后面,但是如果我需要一段时间,我可以“上网”并连接到非代理的互联网。

我在我的项目(在公共网络上)上运行sbt中的更新/编译循环,并已将所有依赖项下载到我的本地.ivy2目录中而没有问题。

然而,当我运行sbt编译时,它仍然有时会尝试重新解析我已经在本地拥有的东西 - 如果我尝试在代理后面执行此操作,它将会挂起。为什么sbt这样做?

我希望在确定我已经捕获了所有需要的工件之后能够在我的公司网上工作。不确定常春藤与maven工件的行为是否不同。碰巧注意到常春藤神器上的行为,但它也可能影响maven的拉力?

1 个答案:

答案 0 :(得分:1)

有两个原因可以发生:

  1. 您依赖于以-SNAPSHOT结尾的版本。 sbt将始终通过设计重新解决这个问题。
  2. 你在这方面遇到了一个错误。
  3. sbt在这里很烦人。旧版本的sbt用于重新解析具有依赖性覆盖AND的所有工件,并使用%%运算符指定; sbt似乎也重新解决了在依赖冲突解决期间被驱逐的任何事情。

    如果您在编译时看到驱逐警告,请尝试为这些库版本添加依赖项覆盖,并查看问题是否仍然存在。