通过设置RelPath,我可以拥有一个maven父项目吗
我有一个多模块的项目 父项目不包含代码,只设置公共属性定义、项目版本号等,并指定模块和生成顺序 我希望每个子模块都有一个通过设置RelPath,我可以拥有一个maven父项目吗,maven,pom.xml,parent,multi-module,Maven,Pom.xml,Parent,Multi Module,我有一个多模块的项目 父项目不包含代码,只设置公共属性定义、项目版本号等,并指定模块和生成顺序 我希望每个子模块都有一个 <parent> <relpath>../pom.xml</relpath> </parent> ../pom.xml 因此,每个模块都继承组、版本和公共属性,如java编译器版本等 但这似乎不是有效的maven。我必须指定父组、工件和版本。(而不仅仅是artifactID) 当我修改项目的版本时,我必须进入每个子
<parent>
<relpath>../pom.xml</relpath>
</parent>
../pom.xml
因此,每个模块都继承组、版本和公共属性,如java编译器版本等
但这似乎不是有效的maven。我必须指定父组、工件和版本。(而不仅仅是artifactID)
当我修改项目的版本时,我必须进入每个子模块修改父模块的版本
我宁愿不必跟踪子模块A版本X与子模块B版本Y兼容。。。我希望所有子模块(A..Z)都有一个与项目(父)匹配的新版本
这可能吗 是的,这是可能的,但您需要使用第三方插件,即来自的版本插件。您不需要安装或做任何特别的事情来使用它,但它不是核心插件的一部分 假设您有以下布局: 根聚甲醛:
<project>
<groupId>org.example</groupId>
<artifactId>root-pom</artifactId>
<version>1.0.0-SNAPSHOT</version>
<modules>
<module>child-1</module>
...
</modules>
...
</project>
这会将所有POM转换为版本
1.1.0-SNAPSHOT
(或您选择的任何内容),以便子POM中的父版本与根POM相同。巧合的是,这与发布插件在mvn发布期间采用的方法相同:prepare什么是第三方插件?谢谢你的回答!对不起,我应该说得更清楚些。我在编辑中添加了对插件的引用。
<project>
<parent>
<groupId>org.example</groupId>
<artifactId>root-pom</artifactId>
<version>1.0.0-SNAPSHOT</version> <!-- Hard-coded -->
<relativePath>..</relativePath>
</parent>
<artifactId>child-1</artifactId>
...
<dependencies>
<dependency>
<groupId>org.example</groupId>
<artifactId>child-2</artifactId>
<version>${project.version}</version> <!-- Dependency to another module in the reactor -->
</dependency>
</project>
mvn versions:set versions:commit -DnewVersion=1.1.0-SNAPSHOT