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

将本地Maven存储库添加到sbt的原因是什么?,sbt,Sbt,我一直看到sbt项目在其构建定义中具有以下解析器设置: resolvers += "Local Maven Repository" at "file://"+Path.userHome.absolutePath+"/.m2/repository" 第节也对其进行了描述 我对使用SBT和建立管理工具的知识有限,但我认为它是一种反模式< /强> 原因是,如果一个项目在本地Maven存储库中声明了一个对库的依赖关系,那么它首先是在那里下载的,所以它在本地Maven存储库之外的某个地方可用。如果是,

我一直看到sbt项目在其构建定义中具有以下
解析器设置:

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存储库。