你能继承Maven中父POM的版本吗?

use*_*818 24 java project maven

我有一堆项目,如:

project1
project2
project3
........
project111
Run Code Online (Sandbox Code Playgroud)

每个项目都在jar中编译:project-1.1.1.1.jar,....是否可以在父文件夹中添加pom.xml,以便为所有项目定义版本1时间?

bma*_*ies 35

如果省略<version/>它,则继承自父级.但是,<parent/>元素必须包含<version/>父元素,因此版本必须出现在每个POM中,但只能出现一次.


Ale*_*nov 24

你可以这样做:

parent pom.xml:
<project>
  ...
  <version>${my-project-version}</version>
  ...
  <properties>
    <my-project-version>1.1.1</my-project-version>
  </properties>
</project>

child pom.xml:
<project>
  ...
  <parent>
    <relativePath>../parent/pom.xml</relativePath>
    <version>${my-project-version}</version>
  </parent>
  ...
</project>
Run Code Online (Sandbox Code Playgroud)

至少,这适合我.

  • 不幸的是,这个解决方案根本不适用于Maven 3.0.4 (7认同)
  • 要在pom文件中获取实际版本,可以在此处遵循详细信息:https://maven.apache.org/maven-ci-friendly.html (2认同)

小智 6

使用属性并引用它有效...除非您使用发布插件来执行发布,在这种情况下它会从版本中删除"-SNAPSHOT"并自动用实际版本号替换所有实例 - 这会覆盖任何替换变量'设置.您可能最好只在每个POM中设置它并使用release插件来标记,增加和释放项目.