Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring boot Maven pom版本继承_Spring Boot_Maven_Maven 3 - Fatal编程技术网

Spring boot Maven pom版本继承

Spring boot Maven pom版本继承,spring-boot,maven,maven-3,Spring Boot,Maven,Maven 3,我有3个项目父母,孩子,子孩子 项目父项目pom如下所示: <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.3.3.RELEASE</version> </parent> <groupId

我有3个项目父母,孩子,子孩子

项目父项目pom如下所示:

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.3.3.RELEASE</version>
</parent>

<groupId>mu.parent</groupId>
<artifactId>parent-system</artifactId>
<version>1.0</version>
<packaging>pom</packaging>

org.springframework.boot
spring启动程序父级
2.3.3.2发布
母本
母系统
1
聚甲醛

项目子pom定义如下,其父pom定义如下:

<modelVersion>4.0.0</modelVersion>

    <parent>
        <groupId>mu.parent</groupId>
        <artifactId>parent-system</artifactId>
        <version>1.0</version>
    </parent>
    
    <groupId>mu.dummy.child</groupId>
    <artifactId>child-backend</artifactId>
    <name>child-backend</name>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>pom</packaging>

  <modules>
        <module>subChild-app</module>
  
    </modules>


...
4.0.0
母本
母系统
1
母子
子后端
子后端
0.0.1-快照
聚甲醛
小儿科应用程序
...
现在,subChild pom如下所示,子级定义为subChild的父级:

 <parent>
            <groupId>mu.dummy.child</groupId>
           <artifactId>child-backend</artifactId>
          <version>0.0.1-SNAPSHOT</version>
    </parent>
 <groupId>mu.dummy.subchild</groupId>
    <artifactId>subchild-backend</artifactId>
    <name>subchild-backend</name>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>pom</packaging>

  <dependencies>
        <dependency>
            <groupId>org.project.test</groupId>
            <artifactId>project</artifactId>
       <version></version> --version of parent-system???
        </dependency>

    </dependencies>

母子
子后端
0.0.1-快照
子弟
子孩子后端
子孩子后端
0.0.1-快照
聚甲醛
org.project.test
项目
--父系统的版本???

是否可以在subchild后端获取父系统(1.0)的版本,而无需硬编码?

您可以使用CI友好的版本,并为版本编写
${revision}
,在主pom中设置此属性(从中构建所有内容)


不过,您需要使用Flatte Maven插件才能在存储库中获得适当的POM。

不久前我问了一个类似的问题,并确定
groovy Maven插件适用于此。请参阅。

您好,我试过了,但如何访问project.properties.setProperty('root.pom.version',pom.version);在你的孩子pom里?这不起作用${root.pom.version}很高兴您尝试了它。再看看,这可能不适用于您想要使用它的地方。Maven在执行插件之前很早就解决了依赖关系。我很好奇为什么您需要指定祖父母POM作为依赖项?基本上org.project.test是一个公共项目,它的父系统是parent-system。因此它的版本应该与其父系统的版本保持一致。您可能会更幸运地使用类似于
maven enforcer插件的插件。它有一个您可以应用的工具,包括一些管理版本的工具。