我正在为我的春季启动项目评估gradle。一切似乎都有效,但这里是我被困的地方。我有2个属性文件。一个用于刺激,即:
application_prod.properties
和qa的另一个,即:
application_qa.properties
我的要求是,当我从gradle构建(创建jar文件)项目时,我将属性文件重命名为
application.properties
然后构建jar文件。据我所知,gradle有一个默认的构建任务。所以在这里我要覆盖它,以便它只考虑所需的属性文件并重命名它,然后根据环境进行构建。
我怎样才能做到这一点?
答案 0 :(得分:6)
您需要做的是覆盖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
演示是here。