我正在为 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 项目窗格启动任务。