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,则继续保留原有的配置,不会互相影响 

posted @ 2019-02-15 16:06  ye213  阅读(2527)  评论(0编辑  收藏  举报