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')