我很想筛选我的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/)等模板语言? –