我有一个具有以下结构的 Maven 项目
项目 - pom.xml --- 模块1 --- 模块 1 的 pom.xml --- 模块2 --- 模块 2 的 pom.xml --- 模块3 --- 模块 3 的 pom.xml -------- 模块31 -------- Module31 的 pom.xml -------- 模块32 -------- Module32 的 pom.xml
即项目有它的pom.xml(包为pom)并有模块。每个模块 <parent> .. </parent>在单独的 ModuleX pom.xml 文件中都有一个部分,可以将其设置为“项目”的工件(在根 pom.xml 中定义)——或者可以将其设置为任何其他 project2/project3 /projectN 工件。
现在,由于这个原因,我查看 Project1 root pom.xml 是否设置为 0.0.1-SNAPSHOT 并且如果我想创建一个发布候选(非快照)构建“0.0.1”,那么我希望所有模块都应该生成与项目根 pom.xml 中设置的相同版本的工件。
我注意到,Module2 pom.xml 有一个父项目,它是其他项目(例如:Project2),并且该父项目的版本 ID 设置为“0.0.7-SNAPSHOT”,Module2 pom.xml(在项目下)也有一些使用 Project2 的工件的依赖项。
Module3 和 Module32 存在相同的情况,其中<parent>部分具有不同的父级(设置为 ProjectN,其中 N 可以是任何数字)并且依赖于这些或任何 ProjectN 项目的工件。
我的问题:
1. 如果我创建项目的 0.0.1(非快照)构建,那么 Maven 将为根 pom、Module1、Module2、Module3 和 Module31/32 生成什么版本 id 工件?
2. 我怎样才能确保项目的 0.0.1 版本 - 为其所有模块生成相同的版本# 0.0.1(即使<parent>这些模块的部分使用不同的项目**N** 并且具有不同/更新部分<version>..</version>中设置的值<parent>)。
谢谢。