stringBoot项目使用Maven分环境打包
需求:后端项目要发布开发环境,测试环境,生产环境等,每次修改配置文件太麻烦。通过配置在使用maven实现分环境打包,以下文档说明 dev测试环境 jilin,henan分别是两个生成环境。
第一步:修改application.yml配置文件
如图可以看出项目的目录结构,resource目录下放置项目的配置文件,其中
application.yml配置开发环境、测试环境、生产环境公共的配置。(将数据库配置、redis配置、server等有差异的配置整体 提出到application-dev.yml、application-henan.yml、application-jilin.yml)
修改application.yml文件中的(如果没有spring. Profiles. active)自己添加。
Active在pom文件中使用
spring:
profiles:
active: @activatedProperties@
如图:(注意层级结构)
第二步:添加或编辑不同环境的配置文件
如下其中一个配置文件dev、henan、jilin主要是数据源地址不同。
第三步:修改pom.xml文件
1.添加以下代码 注意:dev、jilin、henan 要和application-XX.yml文件名中的XX一致
<profiles>
<profile>
<id>dev</id>
<properties>
<!-- 环境标识,需要与配置文件的名称相对应 -->
<activatedProperties>dev</activatedProperties>
</properties>
<activation>
<!-- 默认环境 -->
<activeByDefault>true</activeByDefault>
</activation>
</profile>
<profile>
<id>jilin</id>
<properties>
<activatedProperties>jilin</activatedProperties>
</properties>
</profile>
<profile>
<id>henan</id>
<properties>
<activatedProperties>henan</activatedProperties>
</properties>
</profile>
</profiles>
如果不知道在哪儿加如图:
2.build中添加以下代码
<!--profile文件指定打包启动加载的哪个配置文件,可根据环境的多少分别进行配置-->
<!--resource配置指定系统配置文件加载的路径-->
<!--其中的include表示加载的哪些文件到容器中,如果没有指定所有的配置加载到容器中,在配置文件中的classpath:/**方式引用的文件不会加载到容器中,导致启动失败-->
<resources>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>application-${activatedProperties}.yml</include>
<include>application.yml</include>
<include>mapper/**</include>
<include>*.xml</include>
<include>*.properties</include>
</includes>
<filtering>true</filtering>
</resource>
</resources>
如图配置详解:
3.plugin中添加如下代码
<!--maven在替换变量的时候,默认${}和@@表达式均可替换 该配置主要配置变量的分隔符,我们配置为@-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<configuration>
<delimiters>
<delimiter>@</delimiter>
</delimiters>
<useDefaultDelimiters>false</useDefaultDelimiters>
</configuration>
</plugin>
如图:
第四步:打包发布
mvn clean install -Dmaven.test.skip=true //测试环境
mvn clean install -Dmaven.test.skip=true -P jilin //jilin生产环境
mvn clean install -Dmaven.test.skip=true -P henan //henan生产环境
说明:clean是清除之前的jar包,install是打包到本地 -Dmaven.test.skip=true是忽略测试代码;
mvn clean install -Dmaven.test.skip=true -P jilin
核心是:命令 –P 参数
如图:
打包结束后可以在target看到刚打jar包
解压jar包或查看target/classes目录下的配置文件
有如下结果就已经分环境了!!
本地测试:运行
吧jar包拷贝到c盘(随便地址)
运行黑窗口
java -jar C:\hcy-oe-service-0.0.1-SNAPSHOT.jar
查看是否启动成功
测试,可以直接用浏览器测试看接口是否能正常访问。