将本地Maven存储库添加到sbt的原因是什么?
我一直看到sbt项目在其构建定义中具有以下将本地Maven存储库添加到sbt的原因是什么?,sbt,Sbt,我一直看到sbt项目在其构建定义中具有以下解析器设置: resolvers += "Local Maven Repository" at "file://"+Path.userHome.absolutePath+"/.m2/repository" 第节也对其进行了描述 我对使用SBT和建立管理工具的知识有限,但我认为它是一种反模式< /强> 原因是,如果一个项目在本地Maven存储库中声明了一个对库的依赖关系,那么它首先是在那里下载的,所以它在本地Maven存储库之外的某个地方可用。如果是,
解析器设置:
resolvers += "Local Maven Repository" at "file://"+Path.userHome.absolutePath+"/.m2/repository"
第节也对其进行了描述
<>我对使用SBT和建立管理工具的知识有限,但我认为它是一种<强>反模式< /强>
原因是,如果一个项目在本地Maven存储库中声明了一个对库的依赖关系,那么它首先是在那里下载的,所以它在本地Maven存储库之外的某个地方可用。如果是,为什么不使用原始存储库作为源
如果依赖项不在公共存储库中,并且是项目的依赖项,则项目可以使用dependsOn
来声明它,而不使用解析器中的附加存储库
请给出建议,因为我可能遗漏了一些明显的东西,使得解析器设置必不可少。一个明显的原因是,如果您的依赖项之一是使用maven构建的本地项目
一种情况:
您有一个使用sbt构建的项目x
X依赖于y。Y是用maven构建的
y中有一个bug需要修复/测试,并且在签入之前要对x进行回归测试
您构建了y的快照,然后可以在将更改提交给y之前测试x
一个明显的原因是,如果您的依赖项之一是使用maven构建的本地项目
一种情况:
您有一个使用sbt构建的项目x
X依赖于y。Y是用maven构建的
y中有一个bug需要修复/测试,并且在签入之前要对x进行回归测试
您构建了y的快照,然后可以在将更改提交给y之前测试x
在发布到官方存储库之前,使用maven或任何非sbt构建工具构建,sbt项目可以从该存储库中将其拉下来。这是有道理的。谢谢我一直在思考答案,并提出了另一个问题-为什么对于如此简单的临时更改,解析器设置不应在全局配置中更改?为什么这会成为项目的build.sbt
的一部分?这将是对build.sbt
的临时更改,而无需将其提交到scm存储库。在将其发布到官方存储库(sbt项目可以从该存储库中将其下拉)之前,使用maven或任何非sbt构建工具构建。这是有道理的。谢谢我一直在思考答案,并提出了另一个问题-为什么对于如此简单的临时更改,解析器设置不应在全局配置中更改?为什么这会成为项目的build.sbt
的一部分?这将是对build.sbt
的临时更改,而无需将其提交到scm存储库。