【问题标题】:Gradle incremental build for my task: what's wrong?我的任务的 Gradle 增量构建:怎么了?
【发布时间】:2017-03-29 21:37:02
【问题描述】:

我正在为 Android Studio 2.3 中的 Gradle 3.3 苦苦挣扎。我有资产生成任务,我在 cfg 部分指定了 inputs.dir 和 outputs.dir:

task compileAssets{

inputs.dir 'src/main/assets_src' 
outputs.dir 'src/main/assets' 

def proj_src = 'src/main/'
def abs_proj_src = project.projectDir.getAbsolutePath() + '/' + 'src/main/'
abs_proj_src = abs_proj_src.replace('\\','/')

doLast {
    delete(proj_src + 'assets')
    mkdir(proj_src + 'assets')

    copy
        {
            from proj_src + 'assets_src'
            include 'xml/**'
            include 'fonts/**'
            include 'shaders/**'
            into proj_src + 'assets'
        }

    javaexec{
        main = '-jar'
        args = [
            "../../utils/encoder.jar",
            abs_proj_src + 'assets_src/bin/levels',
            abs_proj_src + 'assets/bin/levels',
            '-rewrite'
        ]
    }
}

我希望 Gradle 会检查输入文件夹更改的内容,如果添加、删除或更改了某些文件,它将允许执行任务,否则它将打印“UP-TO-DATE”。但只有当只有 delete(...) 和 mkdir(...) 时才会如此。否则每次都会执行。也许我以错误的方式理解“增量构建”这个术语?或者可能有任务大小限制,或者增量构建中禁止使用 javaexec 或复制?

PS。我尝试使用 make 命令直接从 AS Gradle 项目窗格启动任务。

【问题讨论】:

    标签: android-studio gradle android-gradle-plugin incremental-build


    【解决方案1】:

    这是我自己的错误。下面是定义的 cleanAssets 任务,我忘记添加

    task cleanAssets{
            delete(proj_src + 'assets')
            mkdir(proj_src + 'assets')
    }
    

    因此,配置阶段资产文件夹中的每个构建都被删除。好笑!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-11-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-03
      • 2015-08-31
      • 2020-06-01
      • 1970-01-01
      相关资源
      最近更新 更多