gpt4 book ai didi

java - 具有不同替换和重命名规则的 gradle processResources

转载 作者:行者123 更新时间:2023-12-03 03:04:41 28 4
gpt4 key购买 nike

我喜欢在我的 gradle 项目中过滤特定的 java 资源。有些文件应该只替换内容,有些文件也应该重命名(并替换不同的内容)。

我的 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 build

我得到:

> ls build/resources/main 
file_c.txt

> cat build/resources/main/file_c.txt
my name is fool
test zzz

但是我想获得这两个文件,其中只有 file_b.txt 会被重命名,并且两个文件都会被特定规则替换。实现该目标的正确方法是什么?

最佳答案

好的,我自己找到了解决方案,以下似乎按预期工作:

apply plugin: 'java'
sourceSets {
main {
java {
resources {
srcDirs = [ "foo" ]
include '**/**'
exclude '**/*.txt'
}
}
}
}

processResources {
with copySpec {
from 'foo/file_a.txt'
filter { String line ->
line
.replace("foo", "fool" )
}
}

with copySpec {
from 'foo/file_b.txt'
rename { "file_c.txt" }
filter { String line ->
line
.replace("ipsum", "zzz" )
}
}
}

关于java - 具有不同替换和重命名规则的 gradle processResources,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40774449/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com