使用Gradle在复制期间重命名目录

时间:2015-04-27 16:22:40

标签: android gradle

我正在使用gradle来构建一个Android应用程序。我正在将几个文件和文件夹复制到assets文件夹。我现在遇到了问题,一些文件的文件名可能太长,文件夹也是如此(aapt无法处理超过100个字符的文件名)。

因此我在复制操作期间重命名文件,如下所示:

    copy {
     from('A')
     into('B')
     rename ('too-long-filename', 'shorter-filename')
     rename ('too-long-directoryname', 'shorter-directoryname')
    }

但是,这适用于文件,但目录失败。是否有特殊命令在使用gradle复制期间实现重命名?

错误说:

错误代码:         1  输出:   /home/curiosity/AndroidStudioProjects/App/build/..way太长的目录名../:错误:目录名无效,无法添加。

1 个答案:

答案 0 :(得分:0)

您可以尝试访问FileTree,但是您必须保存目录,在遍历时无法更改这些目录。如果你只想缩短名称,可能可以使用groovy子字符串表示法longname [0 ..- 10]

类似的东西:

def dirs = []
fileTree("./longdirectoryname").visit { FileVisitDetails details ->
    if (!details.isDirectory()) {
        // rename
    } else {
        dirs.add(details.file)
    }
}

dirs.each { // rename directories here }