2016-04-21 22 views
5

我正在評估我的spring引導項目的gradle。一切似乎都奏效,但這裏是我被卡住的地方。我有2個屬性文件。一個用於PROD即:Gradle:根據環境複製不同的屬性文件並創建jar

application_prod.properties

,另一個用於QA即:

application_qa.properties

我的要求是這樣的,雖然我建(創建jar文件)來自gradle的項目,我必須將屬性文件重命名爲

application.properties中

然後生成jar文件。據我所知,gradle有一個默認的構建任務。所以在這裏,我必須重寫它,以便它僅考慮所需的屬性文件並重命名它,然後根據環境進行構建。

我該如何做到這一點?

回答

5

你需要做的是覆蓋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

相關問題