实现不同环境的打包,就是在pom.xml中定义不同的环境配置,然后将需要的配置打包入最终的压缩包中。
首先定义几个不同的配置文件,然后在pom.xml中定义几个不同的<profile>标签。每个profile可以看作是POM的一部分配置,我们可以根据不同的环境应用不同的profile,从而达到不同环境使用不同的POM配置的目的。
假如配置了3种项目运行环境,在src/main/resources目录下增加如下环境配置
├── conf
│ ├── dev
│ │ ├── application.properties
│ │ ├── conf.properties
│ ├── db.properties
│ ├── online
│ │ ├── application.properties
│ │ ├── conf.properties
│ │ ├── db.properties
│ └── test
│ │ ├── application.properties
│ │ ├── conf.properties
│ │ ├── db.properties
在(子)项目pom.xml中<project>标签下加入如下的<profiles>标签,
<!-- 多环境打包 start -->
<profiles>
<!-- 开发环境配置 -->
<profile>
<id>dev</id>
<properties>
<profiles.active>dev</profiles.active>
</properties>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
</profile>
<!-- 测试环境配置 -->
<profile>
<id>test</id>
<properties>
<profiles.active>test</profiles.active>
</properties>
</profile>
<!-- 正式环境 -->
<profile>
<id>online</id>
<properties>
<profiles.active>online</profiles.active>
</properties>
</profile>
</profiles>
<!-- 多环境打包 end -->
在profile标签中定义一个 id 标签,这样就可以将不同环境的配置区分开。而变量profiles.active的值对应了具体的环境配置名称。为了引用这些环境配置,需要在pom.xml文件中使用该变量的值,在build->resources标签下增加如下内容,
<resource>
<directory>src/main/resources/conf/${profiles.active}</directory>
</resource>
在 pom 中配置好后就可以在 mvn 命令中用-P参数激活指定 id 对应的 profile 进行动态构建了。比如打测试环境包,执行:
mvn clean install -Ptest
这样将src/main/resources/conf/test下的配置打包入项目。
网友评论