2016-03-23 15 views

回答

5

当指定存储库元素时,为什么我们需要false/true?

我们需要这样做,如果我们想要一个存储库仅用于发布版本,例如,另一个仅用于SNAPSHOT版本。

当某些版本(如SNAPSHOT)仅在存储库(已部署但CI作业为例)中可用时,这是企业Maven存储库(即Nexus,Artifactory,Archivia)的常见用例,只能在另一个存储库中使用。释放PROD内容的CI作业应仅使用后者的存储库,不要使用/允许任何SNAPSHOT版本,否则将破坏构建(强制构建可重复性和良好实践)。

official Maven Settings documentation

发布快照:这些是每种类型的神器,发布或快照的政策。有了这两套,POM就有能力在单个存储库内改变每种类型的策略,使其独立于另一种。例如,可能决定仅启用快照下载,可能用于开发目的。

启用truefalse这个存储库是否被用于相应类型(releasessnapshots)运行。


当有多个存储库,其中的信息库要搜索的神器?工件如何解决?

声明的顺序将影响Maven使用的查找顺序。检查此official Maven ticket提供修复从版本3.0上的正确行为。

  • MNG-4400库顺序的settings.xml没有神器分辨率

它是如何影响依赖特定版本的过程中尊重? (1.2.3-SNAPSHOT,1.2.3,1.2。3-RELEASE)

合并上面的两个答案,这取决于声明的顺序和哪个存储库允许哪种类型的构件(快照与否)。


更多参考:

+0

快照版本神器将搜索快照启用库中库声明的顺序? – Selva

+0

@Selva是的,没错。此外,SNAPSHOTs将根据'updatePolicy'元素值更新或通过命令行'-U'选项强制更新 –