最佳答案
我试图弄清楚如何组织许多(大约50多个) maven2项目,以便它们能够部署到一个中央连接库中。在使用 mvn deploy
目标时,确实需要像下面这样在 distribution tionManagement 标记中指定目标:
<distributionManagement>
<repository>
<id>nexus-site</id>
<url>http://central_nexus/server</url>
</repository>
</distributionManagement>
现在,我不希望每一个 pom.xml (超过50个)一遍又一遍地包含这个块。我的第一个想法是 settings.xml
文件,但似乎不可能(按设计)在那里定义它。
第一个问题是,为什么会这样?如果可能的话,我可以在 maven2发行版的 setings.xml 中指定它,它可以分发给所有的开发人员。
我找到的唯一可能的解决方案是创建一个组织范围的 master-pom 项目,其中包含这些设置,并通过 <parent>
标记使所有其他 pom.xml 依赖于这个 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)
通常我在所有的文档中都会读到模块 pom 应该使用父 pom,而不是其他的。但是在阅读了有关“继承诉聚合”的专业网站后,有人写道,这确实是可能的。
我发现的一个问题是与 maven 站点生成,这似乎与这个设置有问题(模块不能得到正确的链接,如果他们没有直接的反向引用)
那么,这是一种有效的方法吗? 还有其他更明显、更简单的解决方案吗?