以下是我正在使用的最小build.gradle文件。在gradle build的installApp階段對每個文件執行操作
apply plugin: 'application'
installApp {
eachFile {
println "$it.name"
loadProperties(it)
}
}
我想要的屬性加載到屬性文件位於src/dist/bin
一些佔位符。如果屬性文件在src/main/resources
中,並且我將installApp
替換爲processResources
,則此技術可以正常工作,這是我在構建中的另一個項目中執行的操作。
println
沒有打印任何內容,因此佔位符沒有被替換,但我不明白爲什麼它不會遍歷installApp任務正在複製的所有文件。
使用gradle 1.10作爲./gradlew clean installApp
運行。
看來installApp任務不會運行傳遞給eachFile函數的閉包。下面是一個說明這種行爲
apply plugin: "application"
mainClassName = "test.Test"
installApp {
eachFile {
println "$it.name"
}
}
我跑gradle clean installApp -i
和周圍的installApp部分得到
:installApp (Thread[main,5,main]) started.
:installApp
Executing task ':installApp' (up-to-date check took 0.011 secs) due to:
Output file /Users/joshbrackett/Documents/workspace/gtest/build/install/gtest has changed.
Output file /Users/joshbrackett/Documents/workspace/gtest/build/install/gtest/bin/gtest has been removed.
Output file /Users/joshbrackett/Documents/workspace/gtest/build/install/gtest/lib/gtest.jar has been removed.
:installApp (Thread[main,5,main]) completed. Took 0.748 secs.
如果不打印任何內容,則可能是沒有安裝任何文件。也許這個任務已經是'最新日期'了。 –
@PeterNiederwieser - 我已經更新了我的問題,包括我正在做一個乾淨的。我甚至手動刪除了安裝目錄以確保文件(啓動腳本/ propery文件)正在移動,但屬性文件仍然有佔位符。 – Josh
我真的不知道你是如何嘗試做替代。無論如何,如果'println'沒有生效,我唯一合乎邏輯的結論就是什麼都沒有得到同步。 –