为了解决多环境 maven 依赖无法区分的问题,自 2.0.0-RELEASE 版本开始,使用以下方案进行依赖管理
请务必同步修改jenkins、shell、docker部署脚本
详情请看 maven私服 配置私服仓库。
<parent>
<artifactId>ofa-dependencies</artifactId>
<groupId>cn.com.tcc.ofa</groupId>
<version>2.0.0-RELEASE</version>
<relativePath/>
</parent>
<dependencies>
<dependency>
<groupId>cn.com.tcc.ofa</groupId>
<artifactId>ofa-common</artifactId>
<version>${tcc.version}</version>
</dependency>
....项目的其他依赖....
</dependencies>
当项目自身想管理版本号时,可以自行设置版本号,拼接**${tcc.active} **
如:
<groupId>cn.com.tcc.ofa</groupId>
<artifactId>ofa-admin</artifactId>
<version>2.0.3-${tcc.active}</version>
当项目自身不想管理版本时,可以将项目自身的version也设置成 ${tcc.version} 如:
<groupId>cn.com.tcc.ofa</groupId>
<artifactId>ofa-admin</artifactId>
<version>${tcc.version}</version>
由 ${tcc.version} 和**${tcc.active} **参数控制的版本号,打包文件名将会动态改变,详情请看下方 项目打包说明
ofa-dependencies 中已经预设了4个 profile,分别为 dev, test, release, prod
在编译过程中,请使用以下命令进行 maven 打包:
mvn clean package -U -P此处替换成profile名称 -DskipTests
例:
mvn clean package -U -Pdev -DskipTests
-P 和 dev 之间没有空格
-P 参数用于指定profile
-U 参数用于开启强制拉取最新依赖
注:该profile变量 非 git 中的分支,也 非 spring.profiles.active参数 ,仅用于编译使用
根据不同的 profile 打包出的名称会不一样,格式如下:
应用名-版本号-后缀
以下为 2.0.0 版本下的各profile打包实例名称
dev: 应用名-2.0.0-SNAPSHOT
test: 应用名-2.0.0-TEST-SNAPSHOT
release: 应用名-2.0.0-RELEASE
prod: 应用名-2.0.0-RELEASE
由于打包后的jar文件为动态文件名,请注意修改原有的jenkins、shell、docker部署脚本
由于打包后的jar文件为动态文件名,请注意修改原有的jenkins、shell、docker部署脚本
由于打包后的jar文件为动态文件名,请注意修改原有的jenkins、shell、docker部署脚本
<profiles>
<profile>
<id>dev</id>
<properties>
<env.param>这是dev环境的配置</env.param>
</properties>
</profile>
<profile>
<id>test</id>
<properties>
<env.param>这是test环境的配置</env.param>
</properties>
</profile>
</profiles>
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>ofa-dependencies</artifactId>
<groupId>cn.com.tcc.ofa</groupId>
<version>2.0.0-RELEASE</version>
<relativePath/>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>cn.com.tcc.ofa</groupId>
<artifactId>ofa-example</artifactId>
<version>${tcc.version}</version>
<dependencies>
<dependency>
<groupId>cn.com.tcc.ofa</groupId>
<artifactId>ofa-common</artifactId>
<version>${tcc.version}</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>