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