执行多环境自动化配置后,不会影响我们再IDEA上直接执行RUN操作,此时,主文件的配置会被下图配置替换。

请注意下属性片段中的注释。
>
>
<!--不同环境Profile的唯一id-->
dev
true
dev
>
>
>prod >
>
>false >
>
>
>prod >
>
>
>
>test >
>
>false >
>
>
>test >
>
>
>
完成该属性的增加后,Profiles菜单下就出现三个自定义的环境,如下图所示默认激活的是dev环境。

maven-resources-plugin
用于将资源配置文件中的动态变量进行替换。
maven-antrun-plugin
用于追加自定义日志消息,在打包时候,在程序执行完毕后控制台打印这是构建哪个环境的日志,使得打包的环境一目了然,避免出现打包错误,导致打包时使用了一个环境的配置,部署时环境搞错了。
其中 就引用了environment属性。
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<executions>
<execution>
<id>default-resources</id>
<phase>package</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>target/classes</outputDirectory>
<useDefaultDelimiters>false</useDefaultDelimiters>
<delimiters>
<delimiter>@</delimiter>
</delimiters>
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
<filtering>true</filtering>
</resource>
<resource>
<directory>src/main/resources/</directory>
<filtering>true</filtering>
<includes>
<include>**/*.yml</include>
</includes>
</resource>
<resource>
<directory>src/main/resources/</directory>
<excludes>
<exclude>**/*.yml</exclude>
</excludes>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.3</version>
<executions>
<execution>
<id>print-custom-info</id>
<phase>package</phase>
<configuration>
<tasks>
<echo message="[INFO] ${environment} 环境打包执行成功"/>
</tasks>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>

请注意:主配置文件中引用的环境变量使用两个@,有的是${},这个可以在2.1中的插件进行配置。
>
>@ >
>
prod环境
