Gradle Groovy删除数组元素

Gradle Groovy删除数组元素,gradle,groovy,Gradle,Groovy,我有一个gradle任务来获取zip内容并将其放入另一个zip。 从src-zip中,我想获取目录“r”中的所有内容,并将其复制到目标zip目录“x/y/z”中。 代码可以工作,但我想知道它是否可以更优雅 from( zipTree("a.zip") ) { include "r/**" includeEmptyDirs = false into "x/y/z" eachFile { fcd ->

我有一个gradle任务来获取zip内容并将其放入另一个zip。 从src-zip中,我想获取目录“r”中的所有内容,并将其复制到目标zip目录“x/y/z”中。
代码可以工作,但我想知道它是否可以更优雅

    from( zipTree("a.zip") ) {
        include "r/**"
        includeEmptyDirs = false
        into "x/y/z"
        eachFile { fcd ->
            def segs1 = [fcd.relativePath.segments].flatten().findAll { it2 -> it2 != null };
            segs1.removeAt(3)
            fcd.relativePath = new RelativePath(true, segs1.toArray(new String[0]))
        }
    }
我遇到的问题是fcd.relativePath.segments是字符串[],我想删除索引为3的元素。
在这里,我将转换为列表,并返回到数组brrr

想法

Frank

基于java的groovy

在java中:

数组是一个容器对象,它包含固定数量的单一类型的值。数组的长度是在创建数组时确定的创建后,其长度是固定的。

所以,您可以将其转换为列表,修改大小,然后再转换回数组

或者创建具有新大小的新数组,并将所需元素复制到其中