繁体   English   中英

Maven Release建立在项目上-工件版本号

[英]Maven Release build on a project - artifact version number

我有一个具有以下结构的Maven项目

Project
- pom.xml
--- Module1
--- pom.xml for Module1
--- Module2
--- pom.xml for Module2
--- Module3
--- pom.xml for Module3
------- Module31
------- pom.xml for Module31
------- Module32
------- pom.xml for Module32

即Project具有pom.xml(打包为pom)并具有模块。 每个模块在单独的ModuleX pom.xml文件中都有一个<parent> .. </parent>部分,可以在其中将其设置为“ Project”(在根pom.xml中定义)的工件。可以设置为任何其他project2 / project3 / projectN工件。

现在,由于这个原因,我看到是否将Project1根pom.xml设置为0.0.1-SNAPSHOT,并且如果我要创建发行候选版本(非快照)版本“ 0.0.1”,那么我希望所有模块都应该生成与Project的根pom.xml中设置的版本相同的工件。

我注意到,Module2 pom.xml具有一个父项,该父项是其他一些项目(例如:Project2),并且该父项的版本ID设置为“ 0.0.7-SNAPSHOT”,而Module2 pom.xml(在Project下)也具有一些父项。使用Project2的工件的依赖关系。

对于Module3和Module32,存在相同的情况,其中<parent>节具有不同的父项(设置为ProjectN,其中N可以是任何数字),并且依赖于那些或任何ProjectN项目的工件。

我的问题

1.如果我创建Project的0.0.1(非快照)版本,那么Maven将为模块1,模块2,模块3和模块31/32的根pom生成哪些版本ID构件?

2.我如何确定0.0.1版本的Project -为其所有模块生成相同的版本号0.0.1(即使这些模块的<parent>部分使用不同的项目** N **并具有<parent>部分中设置的其他/较新的<version>..</version>值)。

谢谢。

看一下maven-release-plugin ,它确实是您想要的。 release:prepare关于验证和更新pom,标记项目并为下一个开发周期做好准备。 release:perform是基于标签构建项目并将工件推送到远程存储库的。

暂无
暂无

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

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