繁体   English   中英

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

[英]Deploying a maven sub-module to a repository for other projects to use (without parent)

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

我的问题是,是否存在执行部署阶段的好的方法或好的方法,该阶段将仅将此子模块上载到其他存储库(也可以复制)而又不依赖于父pom。

我已经尝试过的内容:我已经检查了deploy:deploy-file,但是问题是涉及SNAPSHOT构建。 我们希望能够发布SNAPSHOTS和发行版本,并且快照的存储库与发行版本的存储库不同,但是部署文件目标只能有一个url参数。 我不希望对快照部署使用其他配置文件。 比我尝试使用maven build-helper及其正则表达式属性来更改版本SNAPSHOT的存储库URL,但是由于插件和正则表达式的限制而无法这样做。

最后一个选择是我可以为此创建一个插件,但是我想知道是否有一种更优雅的方式来解决“行家方式”。

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

mvn -pl TheModuleYouWouldLikeToDeploy deploy

可能是您需要添加-am选项(还需要创建依赖项),例如:

mvn -am -pl TheModuleYouWouldLikeToDeploy deploy

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM