Gradle:根据环境复制不同的属性文件并创建jar

2023-11-23

我正在评估我的 Spring Boot 项目的 gradle。一切似乎都有效,但这就是我陷入困境的地方。我有 2 个属性文件。一个用于产品,即:

application_prod.properties

另一个用于质量保证,即:

application_qa.properties

我的要求是,当我从 gradle 构建(创建 jar 文件)项目时,我必须将属性文件重命名为

应用程序属性

然后构建 jar 文件。据我所知,gradle有一个默认的构建任务。因此,在这里我必须重写它,以便它只考虑所需的属性文件并重命名它,然后根据环境进行构建。

我怎样才能实现这个目标?


你需要做的是覆盖processResources配置:

processResources {
    def profile = (project.hasProperty('profile') ? project.profile : 'qa').toLowerCase()
    include "**/application_${profile}.properties"
    rename {
        'application.properties'
    }
}

更改以下代码后,您将得到以下输出:

$ ./gradlew run -Pprofile=PROD
:compileJava UP-TO-DATE
:processResources UP-TO-DATE
:classes UP-TO-DATE
:run
LOL
Profile: PROD

BUILD SUCCESSFUL

Total time: 3.63 secs

$ ./gradlew run -Pprofile=QA  
:compileJava UP-TO-DATE
:processResources
:classes
:run
LOL
Profile: QA

BUILD SUCCESSFUL

Total time: 3.686 secs

$ ./gradlew run             
:compileJava UP-TO-DATE
:processResources UP-TO-DATE
:classes UP-TO-DATE
:run
LOL
Profile: QA

BUILD SUCCESSFUL

Total time: 3.701 secs

Demo is here.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Gradle:根据环境复制不同的属性文件并创建jar 的相关文章

随机推荐