2017-02-16 5 views
0

私は多くのモジュール(10+)を持つプロジェクトを持っています。gradalタスクにdependsOnを動的に追加します

task findbugs(type: FindBugs, dependsOn: ':MODULENAME:compileReleaseSources') { 
    ignoreFailures = true 
    classes = fileTree('build/intermediates/classes/release/') 
    source = fileTree('src/main/java/') 
    classpath = files() 
    ... and so on 
} 

ので、私は、このタスクを抽出し、このタスクでカスタムscript.gradleファイルを作成し、apply from: script.gradleを使用して、すべてのbuild.gradleにそれを含めるしたい各build.gradleファイルの中のタスクがあります。

これが問題になるためには、MODULENAMEdependsOnに含める必要があります。すべてbuild.gradleの中にタスクがあるときは、問題のないモジュール名(:app:compileReleaseSources, :firebase:compileReleaseSourcesなど)がハードコードされているため、何の問題もありませんでした。

どうすれば動的に追加できますかMODULENAME? `プレフィックス:あなたはすべてのモジュールにスクリプトを適用した場合

私が最も簡単で信頼性の高いソリューションを思い付いた
+0

は、私はあなたが'アプリが必要とは思いません。接頭辞なしで実行しようとしましたか? –

+0

すべてのモジュールがある場合は、追加する必要はありません。しかし、別のファイルにタスクを抽出し、それを別のモジュールbuild.gradleに適用した場合は、「タスクがモジュールXXXに存在しないタスク」という例外を追加する必要があります。 –

答えて

0

...

def getModuleName() { 
     return displayName.substring(displayName.indexOf(":"), displayName.length() - 1) 
    } 
関連する問題