指定存储库元素时,为什么我们还需要<snapshot><enabled>false/true</enabled></snapshot>
和<releases/>
?maven pom的仓库元素中启用(快照,发布)标签的用法是什么?
它如何影响特定版本的依赖关系? (1.2.3-SNAPSHOT,1.2.3,1.2.3-RELEASE)
当存在多个存储库时,哪个存储库将被搜索到工件?工件如何解决?
指定存储库元素时,为什么我们还需要<snapshot><enabled>false/true</enabled></snapshot>
和<releases/>
?maven pom的仓库元素中启用(快照,发布)标签的用法是什么?
它如何影响特定版本的依赖关系? (1.2.3-SNAPSHOT,1.2.3,1.2.3-RELEASE)
当存在多个存储库时,哪个存储库将被搜索到工件?工件如何解决?
当指定存储库元素时,为什么我们需要false/true?
我们需要这样做,如果我们想要一个存储库仅用于发布版本,例如,另一个仅用于SNAPSHOT版本。
当某些版本(如SNAPSHOT)仅在存储库(已部署但CI作业为例)中可用时,这是企业Maven存储库(即Nexus,Artifactory,Archivia)的常见用例,只能在另一个存储库中使用。释放PROD内容的CI作业应仅使用后者的存储库,不要使用/允许任何SNAPSHOT版本,否则将破坏构建(强制构建可重复性和良好实践)。
从official Maven Settings documentation
发布,快照:这些是每种类型的神器,发布或快照的政策。有了这两套,POM就有能力在单个存储库内改变每种类型的策略,使其独立于另一种。例如,可能决定仅启用快照下载,可能用于开发目的。
启用:
true
或false
这个存储库是否被用于相应类型(releases
或snapshots
)运行。
当有多个存储库,其中的信息库要搜索的神器?工件如何解决?
声明的顺序将影响Maven使用的查找顺序。检查此official Maven ticket提供修复从版本3.0上的正确行为。
它是如何影响依赖特定版本的过程中尊重? (1.2.3-SNAPSHOT,1.2.3,1.2。3-RELEASE)
合并上面的两个答案,这取决于声明的顺序和哪个存储库允许哪种类型的构件(快照与否)。
更多参考:
快照版本神器将搜索快照启用库中库声明的顺序? – Selva
@Selva是的,没错。此外,SNAPSHOTs将根据'updatePolicy'元素值更新或通过命令行'-U'选项强制更新 –