如何解决Gradle复制:filesMatching...多个文件,没有模式
无级复制:filesMatching(多个文件)。例如,
task copyFoo(type: Copy) {
from ("/path") {
filesMatching("foo.xml") {
filter(ReplaceTokens,tokens : [VERSION,'1.2'])
}
filesMatching("bar.xml") {
filter(ReplaceTokens,'1.2'])
}
filesMatching("hello.xml") {
filter(ReplaceTokens,'1.2'])
}
}
}
是否有合并它们的方法?喜欢
filesMatching("foo.xml" | "hello.xml" | "bar.xml") {
filter(ReplaceTokens,'1.2'])
}
模式可以是正则表达式吗?
解决方法
如果不确定您可以做什么,请前往API documentation。在这里,您将看到filesMatching
方法采用一个字符串,该字符串描述了一个Ant模式:
CopySpec filesMatching((字符串模式, 动作操作)
为每个路径与指定的Ant样式模式匹配的文件配置FileCopyDetails。
没有采用正则表达式模式的方法。但是有一个重载的方法需要一个可迭代的(如列表)Ant模式:
CopySpec filesMatching((可迭代的
模式, 动作操作) 为每个文件的路径与任何指定的Ant样式模式匹配的文件配置FileCopyDetails。
这意味着您可以执行以下操作:
filesMatching(["bar.xml","hello.xml","foo.xml"]) {
filter(ReplaceTokens,tokens : [VERSION: '1.2'])
}
,
请参阅https://docs.gradle.org/current/userguide/working_with_files.html#filtering_files
import org.apache.tools.ant.filters.ReplaceTokens
task copyFoo2(type: Copy) {
from 'build/path'
into "build/copy"
include "foo.xml","bar.xml","hello.xml"
filter(ReplaceTokens,tokens: [VERSION: '1.2'])
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。