Gradle zip:如何轻松地包含和重命名一个文件?
在目录Gradle zip:如何轻松地包含和重命名一个文件?,gradle,zip,rename,Gradle,Zip,Rename,在目录“foo/bar”下创建一个zip添加文件“hello/world.xml”,作为“hello/universe.xml” 文件匹配(…)将明显影响性能。 什么是更好的方法?比如: task myZip(type: Zip) { from ("foo/bar") { include ("hello/world.xml") { rename "hello/universe.xml" } }
“foo/bar”
下创建一个zip添加文件“hello/world.xml”
,作为“hello/universe.xml”
文件匹配(…)
将明显影响性能。
什么是更好的方法?比如:
task myZip(type: Zip) {
from ("foo/bar") {
include ("hello/world.xml") {
rename "hello/universe.xml"
}
}
}
但是
include
不支持rename
我完全不明白为什么要使用文件匹配。您的孩子中只包含一个文件。只需重命名它,一切正常:
task myZip(type: Zip) {
from ('foo/bar') {
include 'hello/world.xml'
rename { 'hello/universe.xml' }
}
}
如果要包含多个文件(甚至复制所有文件),但只想重命名其中一个文件,请使用正则表达式作为第一个参数指定要重命名的文件:
task myZip(type: Zip) {
from 'foo/bar'
rename 'hello/world.xml' 'hello/universe.xml'
}
如果最后一个不起作用,请尝试:
rename ('a.java', 'b.java')
对于正则表达式,它是否需要匹配整个文件名,或者匹配java string.replaceAll(pattern,replacement)中使用的任何模式?谢谢。比如说:“与源正则表达式不匹配的文件将以原始名称复制。”所以我认为任何匹配都足够了。
rename ('a.java', 'b.java')