在Android gradle构建中,当输出目录不完全相同时,我如何才能使它认为任务不是UP-TO-DATE?

时间:2015-10-26 13:00:22

标签: gradle android-gradle build.gradle

我正在使用gradle进行Android项目。

我有一个任务,下载一些文件将它们放入构建中(作为Android资产)。

我希望有一个任务从Web下载一些文件,并将它们放入临时目录,在构建期间将它们从(在单独的复制任务中)复制到资产目录中。

如果输出目录以任何方式更改(例如文件已更改或丢失,目录丢失,子目录中的文件丢失等),我想确保下载程序任务将重新运行(并且不被视为UP-TO-DATE),递归地。)目前,我将输出目录指定为@OutputDirectory,但它似乎没有做我想要的:

class AssetDownloaderTask extends DefaultTask {
    @OutputDirectory
    def File outputDir

    @Input
    def String databaseChecksum
    ....

E.g。如果我从其中一个子目录中删除了一个文件,gradle仍会认为该任务是UP-TO-DATE。是不是应该存储输出的哈希?

我如何实现我的目标?

1 个答案:

答案 0 :(得分:0)

我不是Gradle专家,但我相信您想要使用@InputDirectory注释。

  

当目录位置或内容发生变化时,这将导致任务被视为过时。

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

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