gradle build 生成jar前替换配置文件
来源:互联网 发布:gson解析对象数组 编辑:程序博客网 时间:2024/05/20 16:13
第一次尝试使用gradle,记录一点经验。
用spring boot开发的新项目,开发环境和生产环境的application.properties不一致,每次build发布前还得先改配置文件。
第一反应是google一下,但翻来覆去替换关键词,也没有搜到恰当的方案,只能自己动手了。
首先考虑到的在build时在脚本里读写properties文件动态替换内容,但这样太不符合我的审美,于是把生产环境的配置单独做了个application.properties.real文件,与开发环境的application.properties文件并列放在resource目录下。观察到build打jar包其实是把build/classes/main和build/resources/main目录合并打包完事,于是在jar任务中添加了一个替换配置文件的前置任务:
jar { baseName = 'app' manifest { attributes 'Implementation-Title': 'app', 'Implementation-Version': version } def app_config="build/resources/main/application.properties" def local_config="build/resources/main/application.properties.local" def real_config="build/resources/main/application.properties.real" doFirst { project.file(app_config).renameTo(local_config) project.file(real_config).renameTo(app_config) }}
上面适合在生产环境构建的情况。如果在本地构建的话,替换文件后test cases由于配置文件问题无法通过,所以需要在jar包打完后把配置文件改回来,完整代码如下
jar { baseName = 'app' manifest { attributes 'Implementation-Title': 'app', 'Implementation-Version': version } def app_config="build/resources/main/application.properties" def local_config="build/resources/main/application.properties.local" def real_config="build/resources/main/application.properties.real" doFirst { project.file(app_config).renameTo(local_config) project.file(real_config).renameTo(app_config) } doLast { project.file(app_config).renameTo(real_config) project.file(local_config).renameTo(app_config) }}
测试通过,提交了事:-D
0 0
- gradle build 生成jar前替换配置文件
- gradle标准配置文件build.gradle
- build.gradle配置文件的用法
- gradle 配置文件 build.gradle 属性详解
- build.gradle 名字生成网址
- androidStudio中build.gradle配置文件详解
- Android Studio gradle生成jar
- Gradle根据日期自动生成build号
- gradle生成可运行jar包
- 将Gradle项目打包生成jar包
- 打jar包的脚本存放在build.gradle
- Gradle Build stand alone project running jar files
- Android Studio升级1.0 现有程序 build.gradle配置文件更新
- android模块配置文件build.gradle加中文备注
- Gradle实战系列(二)__自动替换的配置文件
- build.gradle
- build.gradle
- build.gradle
- 二代测序数常用软件
- 【USACO】2009 Feb Stock Market 股票市场
- Android-Universal-ImageLoader的用法和案例
- 实验:链表
- IT进阶之路
- gradle build 生成jar前替换配置文件
- Android-Volley详解
- bitmap二值化等处理
- PHP编写文件多服务器同步程序
- select、poll、epoll之间的区别总结
- hashset\hashtable\Dictionary
- Practical UML: A Hands-On Introduction for Developers
- 在gvim中使用YaHei Consolas Hybrid字体
- 百度语音离线合成