Maven在不同的环境获取不同配置文件的方法
最近准备把正在开发的项目给分为两个环境来部署,使用jenkins进行自动构建。
把maven部署多环境相关的资料看了下,都比较难理解,于是自己摸索,找到一个比较好的办法。
首先在 src/main/resource 下建两个文件夹,具体几个看你的环境有几个,我这里是分了两个,dev和product,开发环境和正式环境。
然后将配置文件分别放入两个目录中,然后把两个环境中的配置配好
接下来编辑项目的pom文件
进行如下配置
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">
......
......
<profiles>
<!-- 开发环境 -->
<profile>
<id>dev</id>
<properties>
<env>dev</env>
</properties>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
</profile>
<!-- 正式环境 -->
<profile>
<id>product</id>
<properties>
<env>product</env>
</properties>
<activation>
<activeByDefault>false</activeByDefault>
</activation>
</profile>
</profiles>
......
......
</project>
中间的properties是用来作为变量能在下文中取到的
然后在build节点中进行如下配置
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">
......
......
<build>
......
......
<resources>
<!-- 此处是因为我的java目录中有一些xml文件,
如果你的项目中的java目录下没有xml文件则可以不用配 -->
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<!-- 是否替换资源中的属性 -->
<filtering>false</filtering>
</resource>
<!-- 此处的用法就是${env}会替换成你的上面选择的具体环境 -->
<resource>
<directory>src/main/resources/${env}</directory>
<!-- 是否替换资源中的属性 -->
<filtering>true</filtering>
</resource>
</resources>
......
......
</build>
......
......
</project>
最后使用maven命令进行编译打包
mvn clean package -Pproduct
-P为指定某个profile,后面跟上具体的profile就行了,比如上面就指定的是product的profile,如果不加,则默认是dev的profile,可以倒回上面的配置看。
接下来就会根据你的命令进行编译打包啦~
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 StoneWu - 石头日记
评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果