Führen Sie eine Großaufgabetask für Unterprojekte aus
Ich habe eine MultiModule gradle-Projekt, das ich bin versucht zu konfigurieren.
Root
projA
projB
other
projC
projD
projE
...
Will ich im Stande sein will zu tun ist, haben eine Aufgabe in der root-build.gradle der ausgeführt wird, die buildJar Aufgabe in jedem der Projekte, die in dem anderen Verzeichnis.
Ich weiß, dass ich tun kann,
configure(subprojects.findAll {it.name != 'tropicalFish'}) {
task hello << { task -> println "$task.project.name"}
}
Aber das bringt auch projA und projB, ich will nur den task ausführen auf c,d,e...
Bitte lassen Sie mich wissen, der beste Weg, dies zu erreichen.
InformationsquelleAutor der Frage Nathan Case | 2014-10-22
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nicht ganz sicher, welche von diesen Sie nach, aber Sie sollte sich auf Ihre Basen.
1. Aufrufen der tasks direkt
Sollten Sie nur in der Lage sein zu rufen
Getestet habe ich dies mit:
und
2. Nur bei der Erstellung von Aufgaben in den Teilprojekten
Oder ist es so, dass Sie nur wollen, dass die Aufgabe erstellt, auf das andere/* Projekte?
Wenn das letztere, dann sind die folgenden Werke:
und es kann dann aufgerufen werden mit:
3. Eine Aufgabe erstellen, die ausgeführt wird Aufgaben in den Teilprojekten nur
Diese version passt zu meiner Lektüre Ihrer Frage, was bedeutet, es gibt bereits eine Aufgabe auf die Teilprojekte (buildJar), und erstellen Sie eine Aufgabe, in root, nur rufen die anderen Teilprojekten/*:buildJar
Dadurch wird eine Aufgabe "buildJar" bei jedem Projekt, und "runBuildJar" auf der anderen/* Projekte nur so können Sie anrufen:
Deine Frage gelesen werden kann, viele Möglichkeiten, hoffe, das deckt Sie alle 🙂
InformationsquelleAutor der Antwort Mark Fisher
Fand ich diese Frage heute, weil ich das gleiche Problem. Alle erwähnten Arten von Markierung verwendet werden können, aber alle von Ihnen haben einige Nachteile. Also ich bin das hinzufügen einer weiteren option:
4. Wechsel das aktuelle Projekt
Dieser schaltet den "current project" und führt dann alle Aufgaben, die mit Namen
hello
unter dem aktuellen Projekt.InformationsquelleAutor der Antwort Marwin