将maven子模块部署到存储库以供其他项目使用(无父级)

时间:2012-11-08 13:36:35

标签: java java-ee maven

问题是,在我们公司,我们有一个包含多个子模块的项目,但其中一个子模块只是API声明的集合,适用于其他(第三个praty)项目。我想将它保留为子模块,因为它更容易维护和构建(依赖和属性继承)。该项目中的其他子模块也依赖于它。

我遇到的问题是,如果存在一个良好的实践或一种很好的方法来执行部署阶段,只将该子模块上传到不同的存储库(也可以复制),而不依赖于父pom

我已经尝试过: 我已经检查了deploy:deploy-file,但问题在于SNAPSHOT版本。我们希望能够发布SNAPSHOTS和发布版本,并且快照具有与发布版本不同的存储库,但是部署文件目标只能有一个url参数。我不希望使用不同的配置文件进行快照部署。我尝试使用maven build-helper及其regex-property,以便在版本为SNAPSHOT时能够更改存储库URL,但由于插件和正则表达式限制而无法执行此操作。

最后一个选项是我可以为此制作插件,但我想知道是否有一种更优雅的方式来解决这个“maven方式”。

1 个答案:

答案 0 :(得分:1)

您可以单独部署此模块,但仅适用于SNAPSHOT的版本,它没有意义。模块的部署可以通过以下方式完成:

mvn -pl TheModuleYouWouldLikeToDeploy deploy

可能需要添加-am(也是依赖项)选项,如:

mvn -am -pl TheModuleYouWouldLikeToDeploy deploy

除此之外,如果您使用多模块构建,为什么不通过mvn deploy部署整个构建,您的方法听起来是错误的?也许最好通过像Jenkins这样的CI工具来完成这项工作。