Gradle 在Android的Gealle构建中,当输出目录不完全相同时,我如何使它考虑一个不是最新的任务?

Gradle 在Android的Gealle构建中,当输出目录不完全相同时,我如何使它考虑一个不是最新的任务?,gradle,android-gradle-plugin,build.gradle,Gradle,Android Gradle Plugin,Build.gradle,我在用gradle做一个Android项目 我有一个任务,下载一些文件,将它们放入构建中(作为Android资产) 我想让一个任务从web下载一些文件,并将它们放到一个临时目录中,在构建过程中从那里(通过一个单独的复制任务)将它们复制到资产目录中 如果输出目录以任何方式发生更改(例如,文件更改或丢失、目录丢失、子目录中的文件丢失等),我希望确保downloader任务将重新运行(并且不会被视为最新的)。目前,我将输出目录指定为@OutputDirectory,但它似乎不符合我的要求: class

我在用gradle做一个Android项目

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

我想让一个任务从web下载一些文件,并将它们放到一个临时目录中,在构建过程中从那里(通过一个单独的复制任务)将它们复制到资产目录中

如果输出目录以任何方式发生更改(例如,文件更改或丢失、目录丢失、子目录中的文件丢失等),我希望确保downloader任务将重新运行(并且不会被视为最新的)。目前,我将输出目录指定为@OutputDirectory,但它似乎不符合我的要求:

class AssetDownloaderTask extends DefaultTask {
    @OutputDirectory
    def File outputDir

    @Input
    def String databaseChecksum
    ....
例如,如果我从其中一个子目录中删除一个文件,gradle仍然认为该任务是最新的。gradle不是应该存储输出的散列吗


我怎样才能达到我想要的呢?

我无论如何都不是一个Gradle专家,但我相信你想用
@InputDirectory
注释来代替

当目录位置或内容发生更改时,这将导致任务被视为过期

编辑:哇,没注意到这东西这么旧。抱歉,如果necroing是不好的SA礼节