【发布时间】:2011-01-14 14:17:16
【问题描述】:
为 maven 项目指定所需存储库的最佳位置在哪里,pom.xml 或 settings.xml?每个位置的优缺点是什么?最佳做法是什么?
在我看来,在 POM 中定义存储库更好,原因有很多:
- 可重现性:相关工件来自 POM 中明确声明的已知位置。用户配置错误的存储库导致问题的可能性也较小。
- 可移植性:此 POM 将构建在任何安装了 maven 的机器上。对其他用户配置的存储库设置没有其他要求。
- 易于使用:新开发人员可以更轻松地检索和构建项目,因为需要设置的配置更少。
也许一个缺点是,如果存储库的位置在未来发生变化,则需要安装代理或发布旧软件的补丁版本,指定新的存储库位置(或者.m2/settings.xml 总是可以提供额外的存储库作为最后的手段)。然而,这似乎是发布管理中良好的可重复性和可移植性的必要分支,而不是一个缺点。
还有其他想法吗?
【问题讨论】:
-
如果 repo 位置发生变化,您只需更新 pom 并确保每个人都刷新他们的本地副本。
-
正确,但旧版本可能已作为发行版发布(例如:zip、tar.gz)。可重复性的一个很好的好处是您可以采用任何发行版/版本,以任何原因应用补丁,并且保证您获得确切的功能发行版以及您的补丁,仅此而已。
-
我的观点与@jnorris 完全一致,但 Sonatype 提供了一些关于将 URL 保留在分布式 POM 文件之外的要点(可能已经过时?):blog.sonatype.com/2009/02/…
标签: maven-2