我想用Gradle替換WAR插件任務中的資源文件。Gradle用WAR插件替換資源文件
基本上我有兩個資源文件:
database.properties
database.properties.production
我想實現的是替代'database.properties'與最終WAR文件下WEB 'database.properties.production' -INF /類。
我嘗試了很多東西,但最合乎邏輯的我是不工作的情況如下:
war {
webInf {
from ('src/main/resources') {
exclude 'database.properties'
rename('database.properties.production', 'database.properties')
into 'classes'
}
}
}
但是,這會導致所有其他資源文件是重複的,包括重複database.properties(二不同的文件具有相同的名稱),但仍然是database.properties.production在WAR中。
我需要一個乾淨的解決方案,沒有重複和WAR沒有database.properties.production。
剛纔試了,它不工作。看起來它沒有效果。 :S –
我更新了代碼並驗證了它的工作原理。簡而言之,改變不符合你需求的現有配置(在這種情況下,由'war'插件完成的配置)可能會非常棘手。有時最好以不同的方式解決問題。在這種情況下,一種替代方法是刪除'processResources.doLast' {...}中的「錯誤」文件(並重命名另一個文件)。或者你可以把文件放在src/main/resources以外的地方,並根據需要手動包含它們('war.webInf.from ...')。哪種解決方案最好取決於您的確切需求(IDE集成等)。 –
它的工作。謝謝。我選擇這種方法的原因是它需要最少的工作。我不想將物業放在一個單獨的位置。使用這種方法,當我使用IDE時,我的代碼將在database.properties中查看測試數據庫,並且在生成我的WAR時,我知道我正在設置生產數據庫。 –