我有一个具有以下结构的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”(在root pom.xml中定义)的工件 - 或者可以将其设置为任何其他project2 / project3 / projectN artifact。
现在,由于这个原因,我看到Project1 root pom.xml是否设置为0.0.1-SNAPSHOT,如果我想创建一个候选版本(非快照)版本“0.0.1”,那么我希望所有模块应该使用在Project的root 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将为根pom生成哪些版本ID工件,包括Module1,Module2,Module3和Module31 / 32?
2.我如何确保项目的0.0.1版本 - 为其所有模块生成相同的版本#0.0.1(即使这些模块的<parent>
部分使用不同的项目** N **并在<version>..</version>
部分设置了不同/较新的<parent>
值。
感谢。
答案 0 :(得分:2)
看一下maven-release-plugin,它确实是你想要的。 release:prepare
是关于验证和更新poms,标记项目并为下一个开发周期做准备。 release:perform
是基于标记构建项目并将工件推送到远程存储库。