![9874eed748739f48a5b720a521337440.png](https://img-blog.csdnimg.cn/img_convert/9874eed748739f48a5b720a521337440.png)
前言
最近业务开发部门因为开发环境和测试环境共用一个maven私仓,导致他们开发环境的API包和测试环境的API包发生了覆盖现象。于是他们向我们部门提出一个需求,希望我们能帮他们实现或者提供这么一个方案,就是项目自动化构建时,项目的版本号能跟着环境变更。比如是开发环境,则项目的API包版本就形如1.0-dev,如果是测试环境,则项目的API版本就形如1.0-test
示例演示
项目层级如下
![8700b9ce0732676154964fab167c0508.png](https://img-blog.csdnimg.cn/img_convert/8700b9ce0732676154964fab167c0508.png)
方案一:mvn -Denv.project.version=1.0-env
注: env.project.version为自定参数变量,env为dev或者test
1、在maven项目的父级pom设置变量,形如下
<groupId>org.example</groupId>
<artifactId>demo-parent</artifactId>
<packaging>pom</packaging>
<version>${env.project.version}</version>
<properties>
<env.project.version>1.0-SNAPSHOT</env.project.version>
</properties>
2、修改其子模块pom
<parent>
<artifactId>demo-parent</artifactId>
<groupId>org.example</groupId>
<version>${env.project.version}</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifact