我在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项目窗格启动。
答案 0 :(得分:0)
这是我自己的错误。下面是定义的cleanAssets任务,我忘了添加<<或者doLast:
task cleanAssets{
delete(proj_src + 'assets')
mkdir(proj_src + 'assets')
}
因此删除了配置阶段资产文件夹中的每个构建。有趣!