在maven的配置文件pom.xml中定义开发、测试、生产环境
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
<!-- 利用build 的resources 和profiles的 profile来配置项目启动环境 -->
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
<filtering>true</filtering>
</resource>
<!-- 这样maven搜索src/main/resources下的所有文件,替换有类似这样变量${profiles.active}的值,其中profiles.active中的值是配置pom.xml文件 -->
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.yml</include>
<include>**/*.xml</include>
</includes>
<!-- 排除dev、test目录下的文件 -->
<excludes>
<exclude>dev/*</exclude>
<exclude>test/*</exclude>
<exclude>prod/*</exclude>
</excludes>
<filtering>true</filtering>
</resource>
<resource>
<directory>src/main/resources</directory>
<!-- 包含,若没有指定则默认为 activeByDefault 标签定义的profile -->
<includes>
<include>${profiles.active}/*</include>
</includes>
</resource>
</resources>
</build>
<profiles>
<profile>
<!-- 如果命令参数带dev就会搜索${profiles.active}的值为dev的文件 -->
<id>dev</id>
<properties>
<profiles.active>dev</profiles.active>
</properties>
<activation>
<!--默认为dev环境打包方式-->
<activeByDefault>true</activeByDefault>
</activation>
</profile>
<profile>
<id>test</id>
<properties>
<profiles.active>test</profiles.active>
</properties>
</profile>
<profile>
<id>pro</id>
<properties>
<profiles.active>pro</profiles.active>
</properties>
</profile>
</profiles>
打包命令: -P 后面的dev、test、pro会自动打包相应的配置文件到jar包中。skipTests跳过测试
mvn clean install -DskipTests -P dev
mvn clean install -Dmaven.test.skip=true -P dev
项目启动命令:
java -jar eureka-config-client-0.0.1-SNAPSHOT.jar --spring.profiles.active=dev
java -jar eureka-config-client-0.0.1-SNAPSHOT.jar --spring.profiles.active=pro
以上配置,默认以dev的开发环境配置启动,
在bootstrap.yml配置文件中写入以下内容,表示默认加载dev开发环境的配置文件
spring:
profiles:
active: ${@profileActive@:dev}
application:
name: eureka-config-client
开发环境配置写在bootstrap-dev.yml中
测试环境配置写在bootstrap-test.yml中
生产环境配置写在bootstrap-pro.yml中