我试图弄清楚如何组织许多(大约 50 多个)maven2 项目,以便它们可以部署到一个中央关系存储库中。使用mvn deploy
目标时,确实需要在 distributionManagement 标记中指定目标,如下所示:
<distributionManagement>
<repository>
<id>nexus-site</id>
<url>http://central_nexus/server</url>
</repository>
</distributionManagement>
现在,我不希望每个 pom.xml(超过 50 个)都一遍又一遍地包含这个块。我的第一个虽然是settings.xml
文件,但似乎不可能(按设计)在那里定义它。所以,第一个问题是,为什么会这样?如果可能的话,我可以在 maven2 发行版的 settings.xml 中指定它,它可以分发给所有开发人员。
我发现的唯一可能的解决方案是创建一个组织范围的 master-pom 项目,它确实包含这些设置,并使所有其他 pom.xml 依赖于这个 master-pom via<parent>
标签。但这在多模块构建中看起来有点奇怪:
- master configuration POM (pm)
- Project 1 parent pom (p1 with module 1 and module 2 as modules)
- Project 1 module pom (with pm as parent)
- Project 2 module pom (with pm as parent)
通常我在所有文档中都读到模块 pom 应该使用父 pom,而不是其他的。但是在阅读了有关继承与聚合的 maven 网站后,它写道确实是可能的。
我发现的一个问题是 maven 站点生成,它似乎确实存在此设置的问题(如果模块没有直接反向引用,则无法正确链接)
那么,这是一种有效的方法吗?任何其他更明显,更简单的问题解决方案?