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

cur*_*ity 6 android gradle

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

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

    copy {
     from('A')
     into('B')
     rename ('too-long-filename', 'shorter-filename')
     rename ('too-long-directoryname', 'shorter-directoryname')
    }
Run Code Online (Sandbox Code Playgroud)

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

错误说:

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

Al *_*nto 0

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

就像是:

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

dirs.each { // rename directories here }
Run Code Online (Sandbox Code Playgroud)