2017-07-30 11 views
2

私はアンドロイドデベロッパーです。そして結果としてGradleによってビルドを書いてください。 Groovy上のGradle DSLに書いた多くのタスク。Gradle。 Kotlin - 動的(「オン・フライ」)タスクを作成することは可能ですか?

ときどき、Gradleタスクを動的に作成する必要があります(「オンザフライ」)。例:

task installDebugFlavors() { 
    android.applicationVariants.all { v -> 
     if (v.name.endsWith('Debug')) { 
      String name = v.name.capitalize() 
      dependsOn "install$name" 
     } 
    } 
} 

このタスクは、すべてのフレーバの組み合わせで新しいタスクを生成します。 結果として、Gradleスクリプトは非常に小さく、理解しやすく、サポートしやすくなっています。それは非常に強力なGroovy機能です。そして、それは非常によく私を助けます。

新しいバージョンのGradleでは新しい言語 - Kotlinが導入されました。

私の質問です:Kotlinに同じタスク(別のタスクの動的作成用)を書くことは可能ですか?

答えて

0

はい、Gradle Kotlin DSLのタスクを動的に作成し、(ストリング)名で他のタスクを参照できます。

tasks { 
    "installDebugFlavors" { 
     android.applicationVariants.forEach { v -> 
      if (v.name.endsWith("Debug")) { 
       val name = v.name.capitalize() 
       dependsOn("install$name") 
      } 
     } 
    }   
} 
関連する問題