Maven之打包时配置文件替换
2016-11-22 16:24
253 查看
在JavaWeb项目中,使用maven打包。在打正式包时,需要手动修改数据库配置为线上环境的地址,这样每次修改起来比较麻烦。
搜索了一些资料后,大部分的做法或原理都是预先使用表达式占位符,然后在打包时动态替换。
但这种做法无法满足我直接在开发环境(
正常配置的数据库配置为测试环境的地址
maven打包时动态替换配置文件
maven打包时利用ant插件,使用
打包时指定profile,打包命令为:
搜索了一些资料后,大部分的做法或原理都是预先使用表达式占位符,然后在打包时动态替换。
但这种做法无法满足我直接在开发环境(
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相关的配置。
相关文章推荐
- maven 打包时动态替换properties资源文件中的配置值
- maven多环境配置文件设置,打包是配置文件变量替换
- maven 打包时动态替换properties,xml资源文件中的配置值
- maven 打包时动态替换properties资源文件中的配置值
- maven打包动态替换配置文件中的值
- maven 生产环境、开发环境替换配置文件打包
- 通过Maven构建打包Spring boot,并将config配置文件提取到jar文件外
- Android Maven打包批量替换资源文件(overlay换皮肤)&AAR打包依赖模块覆盖策略
- Maven_根据不同个环境打包, 获取不同的配置文件等等
- maven打包依赖程序和配置文件
- Maven打包配置文件
- 让Maven在打包时包含配置文件
- Maven根据不同个环境打包, 获取不同的配置文件
- Maven中Pom文件打包配置build
- maven打包不同profile下的配置文件(不同目录下多个配置文件)
- maven打包pom.xml配置,及mvn命令,另附常用清除lastUpdated文件的脚本
- Maven根据不同环境打包不同配置文件
- maven中使用不同配置文件打包
- maven 根据环境打包不同配置文件
- 使用 maven 打包配置文件