Gradle增量构建我的任务:错误是什么?

时间:2017-03-29 13:13:14

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

我在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会检查输入文件夹更改的内容,如果添加,删除或更改了某些文件,它将允许执行任务,否则它将打印“最新日期”'。但只有当只删除(...)和mkdir(...)时才会如此。否则每次执行。也许我理解“增量构建”这个术语。以错误的方式?或者可能存在任务大小限制,或者在增量构建中禁止使用javaexec或copy?

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

1 个答案:

答案 0 :(得分:0)

这是我自己的错误。下面是定义的cleanAssets任务,我忘了添加<<或者doLast:

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

因此删除了配置阶段资产文件夹中的每个构建。有趣!