我有这个gradle任务来获取zip内容并将其放入另一个zip。
我想从src zip中获取所有内容,并将其复制到目标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是String [],我想在其中删除索引为3的元素。
在这里,我转换为列表,然后返回数组,brrr。
想法?
坦率
答案 0 :(得分:1)
基于Java的Groovy
和在Java中:
数组是一个包含固定数量的单一类型值的容器对象。创建数组时将确定数组的长度。 创建后,其长度是固定的。
https://docs.oracle.com/javase/tutorial/java/nutsandbolts/arrays.html
因此,您可以将其转换为List,修改大小,然后转换回数组
或创建一个具有新大小的新数组,并将所需的元素复制到其中。