gradle - 在Android gradle构建中,当输出目录不完全相同时,如何使它考虑不是UP-TO-DATE的任务?

标签 gradle android-gradle-plugin build.gradle

我正在为Android项目使用gradle。

我有一个任务,可以下载一些文件以将其放入构建中(作为Android Assets )。

我希望有一个任务可以从Web上下载一些文件并将它们放到temp目录中,在构建过程中将文件从中复制(通过单独的复制任务)到 Assets 目录中。

我想确保如果输出目录以任何方式更改(例如,文件更改或丢失,目录丢失,子目录中的文件丢失等),递归都将重新运行downloader任务(而不是UP-TO-DATE)。 。当前,我将输出目录指定为@OutputDirectory,但似乎不执行我想要的操作:

class AssetDownloaderTask extends DefaultTask {
    @OutputDirectory
    def File outputDir

    @Input
    def String databaseChecksum
    ....

例如。如果我从其中一个子目录中删除文件,gradle仍将任务视为UP-TO-DATE。 gradle不应该存储输出的哈希吗?

我怎样才能实现自己想要的?

最佳答案

无论如何,我不是Gradle专家,但我相信您想改用@InputDirectory注释。

This will cause the task to be considered out-of-date when the directory location or contents have changed.



https://docs.gradle.org/current/javadoc/org/gradle/api/tasks/InputDirectory.html

编辑:哇,没注意到这太老了。对不起,如果坏死是坏SA礼节。

关于gradle - 在Android gradle构建中,当输出目录不完全相同时,如何使它考虑不是UP-TO-DATE的任务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33346423/

相关文章:

android - 在 Android Studio 中更新到 Gradle 3.3.2 时出错 : Cannot resolve symbol R

android - 在 flutter 中构建应用程序 2 次后构建失败

android - 无法使用 SDK 构建工具 21 或更高版本过滤多种密度的 Assets

android - 如何将 PMD 更新到新版本?

android - Gradle中的任务 ':app:processDebugManifest'执行失败

android - AAR文件中的Google Analytics(分析):未找到类

android - 如何在 Android Studio 中加速 Gradle 构建过程

android - 通过 Android Studio 运行单元测试第一次工作然后失败

gradle - Gradle-从应用文件中调用父文件功能

android - 添加依赖到android库 'api' vs 'implementation'