Ich habe ein Projekt mit vielen Modulen (10+). Innerhalb jeder build.gradle
Datei ist es eine Aufgabe:Dynamisch hinzufügen dependsOn zu der Gradle Aufgabe
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
}
so wollte ich diese Aufgabe extrahieren und eine benutzerdefinierte script.gradle
Datei mit dieser Aufgabe anlegen und es jedem build.gradle
apply from: script.gradle
verwenden.
Und hier kommt das Problem, damit dies funktioniert, muss ich die MODULENAME an die dependsOn
. Wenn ich innerhalb jeder build.gradle
Aufgabe hatte, gab es überhaupt kein Problem, weil ich gerade den entsprechenden Modulnamen (:app:compileReleaseSources, :firebase:compileReleaseSources
, etc.) hartcodierte.
Gibt es eine Möglichkeit, wie kann ich dynamisch hinzufügen MODULENAME?
Wenn Sie das Skript zu jedem Modul anwenden glaube ich nicht, dass Sie die 'App benötigen:' Präfix. Hast du versucht, es ohne das Präfix zu laufen? –
Sie müssen es nicht hinzufügen, wenn Sie es jedes Modul haben, das stimmt. Aber wenn Sie die Aufgabe in eine andere Datei extrahieren und sie auf das andere Modul build.gradle anwenden, müssen Sie hinzufügen, sonst erhalten Sie die Ausnahme, dass "Aufgabe mit Pfad nicht im Modul XXX existiert". –