2016-04-21 8 views
5

Ich evaluiere Gradle für meine Spring Boot-Projekt. Alles scheint zu funktionieren, aber hier bin ich festgefahren. Ich habe 2 Eigenschaftendatei. Eine für prod dh:Gradle: Kopieren Sie verschiedene Eigenschaftendatei abhängig von der Umgebung und erstellen Sie jar

application_prod.properties

und eine andere für qa dh:

application_qa.properties

Meine Forderung ist so, dass, während ich bauen (jar-Datei erstellen) das Projekt von Gradle, ich muss die Eigenschaftendatei in

umbenennen

application.properties

und dann die JAR-Datei erstellen. Soweit ich weiß, hat Gradle eine Standard-Build-Aufgabe. Also hier muss ich es so überschreiben, dass es nur die erforderliche Eigenschaftendatei berücksichtigt und sie umbenennt und dann abhängig von der Umgebung erstellt.

Wie kann ich das erreichen?

Antwort

5

Was Sie tun müssen, ist processResources Konfiguration außer Kraft zu setzen:

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

Mit dem folgenden Code geändert Sie die Ausgabe unten erhalten wird:

$ ./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 here ist.