【问题标题】:In an Android gradle build, how I can I make it consider a task not UP-TO-DATE when the output directory is not exactly the same?在 Android gradle 构建中,当输出目录不完全相同时,我如何让它认为任务不是 UP-TO-DATE?
【发布时间】:2015-10-26 13:00:21
【问题描述】:

我正在为一个 Android 项目使用 gradle。

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

我想让一个任务从网络上下载一些文件并将它们放入一个临时目录中,然后在构建期间将它们从那里复制(通过单独的复制任务)到资产目录中。

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

class AssetDownloaderTask extends DefaultTask {
    @OutputDirectory
    def File outputDir

    @Input
    def String databaseChecksum
    ....

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

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

【问题讨论】:

    标签: gradle android-gradle-plugin build.gradle


    【解决方案1】:

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

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

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

    编辑:哇,没注意到这太旧了。抱歉,如果坏死是不好的 SA 礼仪。

    【讨论】:

      猜你喜欢
      • 2011-11-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-20
      • 2021-11-24
      • 2015-12-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多