我很想篩選我的gradle項目中的特定java資源。如果某些文件只應該替換內容,則應該重新命名一些文件(並且替換不同的內容)。gradle process具有不同替換和重命名規則的資源
我gradle這個Java項目的設置是:
> cat build.gradle
apply plugin: 'java'
sourceSets {
main {
java {
resources {
srcDirs = [ "foo" ]
include '**/**'
}
}
}
}
processResources {
include '**/file_a.txt'
filter { String line ->
line
.replace("foo", "fool")
}
}
processResources {
include '**/file_b.txt'
rename { "file_c.txt" }
filter { String line ->
line
.replace("ipsum", "zzz")
}
}
> cat foo/file_a.txt
my name is foo
test ipsum
> cat foo/file_b.txt
lorem ipsum ...
一旦運行:
gradle這個建立
我得到:
> ls build/resources/main
file_c.txt
> cat build/resources/main/file_c.txt
my name is fool
test zzz
但是我LIK e以獲得這兩個文件,其中只有file_b.txt
將被重命名,並且兩個文件將被特定規則取代。什麼是實現這一目標的正確途徑?
嗯,我明白了你的觀點,但是我處於一種情況,我需要在特定文件中過濾特定的東西,此外,我需要重新命名特定的文件 –
公平的......我沒有充分了解你的用例。爲什麼不能將模板命名爲與目標文件完全相同?您是否考慮過使用[freemarker](http://freemarker.org/)或[velocity](https://velocity.apache.org/)等模板語言? –