您的位置:首页 > 其它

Maven之打包时配置文件替换

2016-11-22 16:24 253 查看
在JavaWeb项目中,使用maven打包。在打正式包时,需要手动修改数据库配置为线上环境的地址,这样每次修改起来比较麻烦。

搜索了一些资料后,大部分的做法或原理都是预先使用表达式占位符,然后在打包时动态替换。

但这种做法无法满足我直接在开发环境(
Eclipse+Tomcat
)里面直接测试,因为配置文件里面的值是表达式而不是真正的值。所以综合一些资料有个以下解决办法。

正常配置的数据库配置为测试环境的地址

maven打包时动态替换配置文件

项目结构图如下



具体实现

在开发环境中测试时使用图中测试的数据库配置

maven打包时利用ant插件,使用
classpath:product/jdbc.properties
替换
classpath:jdbc.properties
,具体做法是在
pom.xml
中做如下配置

<profiles>
<profile>
<id>prod</id> <!--指定ID-->
<build>
<plugins>
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.8</version>
<executions>
<execution>
<phase>compile</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<tasks>
<!-- 替换jdbc.properties-->
<copy file="${basedir}/src/main/resources/product/jdbc.properties" tofile="${basedir}/target/classes/jdbc.properties" overwrite="true"/>
<delete dir="${basedir}/target/classes/product"/>
</tasks>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
</profiles>


打包时指定profile,打包命令为:
mvn clean package -P prod


总结

这种的做法同样也可以替换其他相关配置,比如
log4j
相关的配置。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: