大家好,我是水牛君,今天为大家分享的是关于Maven多环境配置问题。
大家知道Maven可以为我们管理JAR包,同时有许多的插件为我们的项目开发和部署提供了很多便利。在我们实际的开发过程中,经常说一个项目有开发环境,测试环境,生产环境,但是呢,这三个环境的配置文件往往又不是一样的,尤其是我们有很多的XML以及其他的配置文件。这里介绍使用方法。
首先,我的项目结构如下,src/main/resources这里面放的都是配置文件。里面分为dev,test,pro三个目录,分别是开发环境,测试环境和生产环境。
其次,在POM.XML文件中增加以下代码
<profiles>
<profile>
<id>dev</id>
<properties>
<profiles.active>dev</profiles.active><!--开发环境-->
</properties>
</profile>
<profile>
<id>test</id>
<properties>
<profiles.active>test</profiles.active><!--测试环境-->
</properties>
</profile>
<profile>
<id>pro</id>
<properties>
<profiles.active>pro</profiles.active><!--生产环境-->
</properties>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
</profile>
</profiles>
第三,在POM BUILD节点中增加如下配置
<resources>
<resource>
<directory>src/main/resources/${profiles.active}</directory>
</resource>
<resource>
<directory>src/main/resources</directory>
<excludes>
<exclude>test/*</exclude>
<exclude>pro/*</exclude>
<exclude>dev/*</exclude>
</excludes>
</resource>
</resources>
注意:尤其要注意,我们在配置这里的时候,主语顺序,否则配置不会生效的。要把需要过滤的放在最下面。
最后,通过命令运行,命令格式为mvn clean pakcage -Ppro -Dmaven.test.skip=ture
命令解释:-P这里是大写,注意我们也可以不写,则默认加载active的配置(我的是pro),-Ppro的目的是表示使用生产环境进行打包。若我们需要使用测试环境则是-Ptest
-Dmaven.test.skip=true是我打包的时候跳过测试。
好了,就这样简单,有什么不明白的欢迎留言,祝你成功。