2017-03-29 11 views
0

私はAndroid Studio 2.3のGradle 3.3に苦労しています。私はGradleのは、入力フォルダの変更の内容をチェックして、いくつかのファイルが追加された場合、削除またはそれができるようになります変更することを期待私の仕事のための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' 
     ] 
    } 
} 

:私は資産が、私は、CFGのセクションでinputs.dirとoutputs.dirを指定するためのタスクを生成していますタスクを実行する。そうでなければ、「UP-TO-DATE」を表示する。しかし、これはdelete(...)とmkdir(...)だけの場合に限られます。それ以外の場合は毎回実行されます。たぶん私は間違った方法で 'インクリメンタルビルド'という用語を理解していますか?または、タスクサイズの制限があるか、javaexecまたはcopyがインクリメンタルビルドで禁止されていますか?

PS。私はmakeコマンドで、AS Gradleのプロジェクト・ペインから直接タスクを起動しようとしました。

答えて

0

これは私自身のエラーでした。以下は、私が< <またはdoLastを追加するのを忘れcleanAssetsは、タスク、定義されていますので、すべてがのcon​​figure相資産フォルダに構築

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

が削除されました。面白い!

関連する問題