清理构建时如何防止删除构建目录?

Posted

技术标签:

【中文标题】清理构建时如何防止删除构建目录?【英文标题】:How to prevent to delete the build directory when cleaning a build? 【发布时间】:2018-07-31 07:47:40 【问题描述】:

我现在使用的是 android Studio 3.1.3 版本。 当点击Build/Clean菜单时,它会删除构建目录。(例如:app/build目录)

顺便说一句,我只想保留build 目录。 另一方面,我想删除构建目录中的子目录和文件。

如何修改gradle build中的“clean”功能?

(因为我使用的是build目录的“soft link”,而真正的build目录位于RAMDISK。)

【问题讨论】:

所以你只是想保留'build'?如果是这样,重新创建会很好(它不应该与静态链接混淆) @shkschneider 清理构建时可以创建特定目录的软链接吗? 【参考方案1】:

您是否考虑过更改每个项目的$buildDir 而不是使用软链接?见Project.setBuildDir(File)

例如

ext 
    ramDiskRoot = 'z:/foo' 
 
allprojects 
    buildDir = "$ramDiskRoot/$name/build"

如果您想将此逻辑保留在您的构建脚本之外,您可以使用init script

【讨论】:

我之前用过init脚本。但是在使用 lambda 方法时发现了很多错误,例如“无法创建目录”。谢谢你的回答。 可能使用 File.mkdir() 而不是 File.mkdirs() 但如果没有看到它就很难提供帮助。可能最好为此打开一个新问题

以上是关于清理构建时如何防止删除构建目录?的主要内容,如果未能解决你的问题,请参考以下文章

Unix:用于清理日常构建的快速“删除目录”

jenkins每次构建前删除工作目录操作

如何修复:Xcode 9 构建循环直到退出代码 255

Linux From Scratch(LFS11.0)进入 Chroot 构建临时工具 - 清理和备份临时系统

使用自动工具构建时如何生成源文件

清理项目和构建 J2me 项目时删除资源时出错