maven多模块版本统一管理

发布时间 2023-10-09 21:19:36作者: heoi_WG

maven多模块版本统一管理

结构:

  • 父模块

    • 子1模块

      • 依赖子2模块
    • 子2模块

父模块定义

<project>
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.4.RELEASE</version>
        <relativePath/>
    </parent>

    <groupId>org.project.maven</groupId>
    <artifactId>project-parent</artifactId>
    <version>${revision}</version>
    <packaging>pom</packaging>

    <properties>
        <!-- 全局版本控制,如果要修改版本号,修改此处即可-->
        <revision>1.0.0-SNAPSHOT</revision>
    </properties>
</project>

关键点:

  1. 不可混合使用{revision}和明确字符串版本号,若出现父子模块版本号混合使用{revision}和明确字符串形式如1.0.0.-SNAPSHOT,在mvn package会出现类似如下错误:
  2. 只能命名成revision​​,不可以更改成其他命名;在Maven的POM文件中,使用<version>​元素来定义版本号,其中的变量部分可以使用Maven属性(property)进行定义。根据Maven的约定,这个属性名称应该为revision

子1模块定义

<project>
    <modelVersion>3.0.0</modelVersion>
    <parent>
        <groupId>org.project.maven</groupId>
        <artifactId>project-parent</artifactId>
        <version>${revision}</version>
    </parent>

    <artifactId>project-child1</artifactId>
    <packaging>jar</packaging>
  
    <dependencies>
        <dependency>
            <groupId>org.project.maven</groupId>
            <artifactId>child2</artifactId>
			<!-- 填写对于子2模块的依赖,需要用到porject.version -->
            <version>${project.version}</version>
      </dependency>
  </dependencies>


参考: