2016-04-21 17 views
5

Tôi đang đánh giá gradle cho dự án khởi động mùa xuân của mình. Mọi thứ dường như hoạt động nhưng đây là nơi tôi bị kẹt. Tôi có 2 tập tin thuộc tính. Một cho prod ví dụ:Gradle: Sao chép các tệp thuộc tính khác nhau tùy thuộc vào môi trường và tạo jar

application_prod.properties

và một cho qa ví dụ:

application_qa.properties

Yêu cầu của tôi là như vậy mà khi tôi xây dựng (tạo tệp jar) dự án từ gradle, tôi đã đổi tên tệp thuộc tính thành

application.properties

và sau đó xây dựng các tập tin jar. Theo như tôi biết, gradle có một nhiệm vụ xây dựng mặc định. Vì vậy, ở đây tôi đã ghi đè lên nó như vậy mà nó chỉ xem xét các tập tin thuộc tính cần thiết và đổi tên nó và sau đó xây dựng tùy thuộc vào môi trường.

Tôi làm cách nào để đạt được điều này?

Trả lời

5

Những gì bạn cần làm là để ghi đè processResources cấu hình:

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

Với đoạn mã sau đây đã thay đổi, bạn sẽ nhận được đầu ra dưới đây:

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

Các vấn đề liên quan