SpringBoot开发环境、测试环境、部署环境切换
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
SpringBoot开发环境、测试环境、生产环境打包
在日常的开发中,我们的项目经常有几套环境,开发环境、测试环境、生产环境,就有几套配置文件,如果频繁修改配置文件难免容易出错。
maven提供了一套解决方案< profiles>标签。
一、增加pom.xml文件配置
1、配置文件路径
<profiles>
<!-- 本地开发环境-->
<profile>
<!--执行打包命令时将使用此处的id进行定位-->
<id>dev</id>
<properties>
<!--此处为对应的环境放置配置文件的目录,上一步创建的为dev,这里设置为dev。
下面两个目录配置参照此处-->
<env>dev</env>
</properties>
<activation>
<!--此处将dev设置为默认环境-->
<activeByDefault>true</activeByDefault>
</activation>
</profile>
<!-- 测试环境-->
<profile>
<id>test</id>
<properties>
<env>test</env>
</properties>
</profile>
<!-- 生产环境-->
<profile>
<id>prod</id>
<properties>
<env>prod</env>
</properties>
</profiles>
2、创建配置文件夹,及不同配置文件
3、在build节点中配置文件过滤器
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<!--fork : 如果没有该项配置,肯呢个devtools不会起作用,即应用不会restart -->
<fork>true</fork>
<mainClass>com.auth.ucenter.UcenterUserApplication</mainClass>
<!--不能使用skip,否则打的包没有jar-->
<!--<skip>true</skip>-->
</configuration>
<executions>
<execution>
<goals>
<!--创建一个自动可执行的jar或war文件-->
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
<resources>
<!--此处的设置是打包的时候排除不相关的目录-->
<resource>
<!--此处设置为上面在resources目录下创建的文件夹-->
<directory>src/main/resources/env</directory>
<excludes>
<exclude>dev/*</exclude>
<exclude>test/*</exclude>
<exclude>prod/*</exclude>
</excludes>
<!--开启过滤器,此处不能忽略!-->
<filtering>true</filtering>
</resource>
<!--此处的设置是为了将放置于resources文件夹下mybatis的mapper文件正常打包进去,和一些不需要多环境的配置文件-->
<resource>
<!--如果将mybatis的mapper文件放在dao接口的同目录下,应该将此处设置为src/main/java -->
<directory>src/main/resources</directory>
<includes>
<include>com/auth/ucenter/**</include>
<include>publickey.txt</include>
</includes>
<!--此处不需要过滤器过滤-->
<filtering>false</filtering>
</resource>
<!--此处设置是配置相应配置文件夹的路径-->
<resource>
<directory>src/main/resources/env/${env}</directory>
</resource>
</resources>
</build>
4、配置打包插件
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<!--fork : 如果没有该项配置,肯呢个devtools不会起作用,即应用不会restart -->
<fork>true</fork>
<mainClass>com.auth.ucenter.UcenterUserApplication</mainClass> <!--不能使用skip,否则打的包没有jar-->
<!--<skip>true</skip>-->
</configuration>
<executions>
<execution>
<goals>
<!--创建一个自动可执行的jar或war文件-->
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
二、使用cmd进行打包
1、进入pom.xml所在目录下
运行cmd命令:mvn install-Pdev //dev表示你要打包的环境,打包prod环境可以用-Pprod 运行命令后会在target下生成jar包,它主要是通过你配置的文件路径找到对应的文件并将它copy出来覆盖最外面的配置文件,达到更换配置的目的。
2、运行jar 进入target目录下java -jar xxx.jar
注意:若要跳过test环节,可在pom.xml中添加<skipTests>true</skipTests>,如下:
<properties>
<!--打包跳过测试-->
<skipTests>true</skipTests>
</properties>
有父工程的可以添加到父工程中的properties标签中,其子工程均有此配置。
安装完后application.yml应该是相应的目录中的(如运行mvn install –Pprod后应该为prod 文件夹下得配置文件)。