gradle打包时自动更改配置文件

先介绍下我这个工程的情况,是springboot项目,需要用gradle打包成jar包,提交到storm上执行。由于工程有不同的配置,也就是说打包的时候需要更改application.yml中,spring.profiles.active的属性,又不想每次打包的时候都去更改这个属性,就想做成自动化的,执行命令自动更改配置并打包

查阅了相关资料后,发现可以这么做:

在build.gradle里,添加如下代码:

jar.doFirst{
    if(!project.hasProperty('xx')) return
    def list = []
    new File('build/resources/main/application.yml').withReader('UTF-8'){reader->
        reader.eachLine{
            if(it.contains('active:')) it = '        active: xx'
            list.add(it + '\r\n') } new File('build/resources/main/application.yml').withWriter('UTF-8'){reader-> list.each{ writer.write(it) } } }

这样,在当执行gradle jar -Pxx的时候,就会自动将打包后的文件内容给更新了。而执行gradle jar,则继续保留原有的配置,不会互相影响 

猜你喜欢

转载自www.cnblogs.com/yjcblog/p/10384187.html