我想弄清楚如何组织很多(大约50+)maven2项目,以便他们可以部署到一个中央连接库。当使用mvn deploy
目标,一个人需要指定目标的distributionManagement标签是这样的:如何指定maven的分发管理组织范围?
<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通过<parent>
标记取决于此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,而不是一些不同的一个所有文档中读取。但在阅读关于继承与聚合的maven网站之后,写道它的确是可行的。
一个问题我发现了与Maven站点的一代,似乎有与此设置问题(模块不能正确连接,如果他们没有直接回引)
所以,这是一个有效的方法?任何其他更明显,更简单的解决方案?
http://maven.apache.org/pom.html#Distribution_Management – OhadR 2014-07-23 11:08:05
@OhadR:他们只写如何写在一个项目中。要点是我不想重复它约500次... – mglauche 2014-07-23 13:45:00
我明白了。采取点。所以回答的人说,你可以有一个主要的POM为项目,这将包含'distribMngmnt'... – OhadR 2014-07-24 10:42:45