2017-03-29 69 views
0

我在Android Studio 2.3中苦于Gradle 3.3。我有资产产生的任务,我在CFG部分指定inputs.dir和outputs.dir:我的任务的Gradle增量构建:出了什么问题?

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' 
     ] 
    } 
} 

我希望摇篮将检查输入文件夹更改内容,如果添加一些文件,删除或更改它将使执行任务,否则它将打印'最新日期'。但仅当删除(...)和mkdir(...)时才如此。否则它每次都执行。也许我用错误的方式理解“增量构建”这个术语?或者可能有任务大小限制,或者javaexec或copy在增量构建中被禁止?

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

回答

0

这是我自己的错误。下面定义cleanAssets任务,在那里我忘了补充< <或doLast:

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

所以每次在配置资产阶段建立的文件夹已被删除。滑稽!