将本地Maven存储库添加到sbt的原因是什么?

时间:2014-01-05 13:28:41

标签: sbt

我一直看到sbt项目在其构建定义中使用以下resolvers设置:

resolvers += "Local Maven Repository" at "file://"+Path.userHome.absolutePath+"/.m2/repository"

它也在the official documentation of sbt in Resolvers部分中描述。

我对使用sbt和构建管理工具的一般知识有限,但我认为它是一种反模式

原因是如果一个项目声明了对本地Maven资源库中的库的依赖,那么它首先会以某种方式下载到那里,因此它可以在本地maven资源库之外的某个地方使用。如果是,为什么不使用原始存储库作为源?

如果依赖项不在公共存储库中,并且是项目的依赖项,则项目可以使用dependsOnresolvers中没有其他存储库的情况下声明它。

请提供建议,因为我可能会遗漏一些明显的问题,使resolvers设置不可或缺。

1 个答案:

答案 0 :(得分:4)

一个明显的原因是,如果您的某个依赖项是使用maven构建的本地项目。

一种情况:

  1. 您有一个使用sbt
  2. 构建的项目x
  3. X取决于y。 Y是用maven构建的。
  4. 你需要修复/测试y中的一个错误,并且你想在签入之前回归测试x。
  5. 您构建了y的快照,然后您可以在将更改提交到y之前测试x。