Ich versuche, mich umzusehen, wenn es möglich ist, Aufgaben aus anderen Projekten in Gradle zu verwenden. Nehmen wir an, ProjectB ist ein Projekt mit src / main / groovy, das com.MyTask enthält und über ProjectA
verfügtIn build.gradle in ProjectC, auch mit übergeordneten ProjectA:
%Vor%Das scheint echt zu sein, denn ein Tippfehler in "Projekt (: 'ProjectB')" scheitert sehr. Was auch fehlschlägt, ist die Einführung dieser Zeile:
%Vor%Sind Projektreferenzen im BuildScript-Abschluss nicht gültig? Versuchen Sie auch com.MyTask zu BuildSrc / src / main / groovy mit der gleichen Menge an Erfolg zu bewegen.
Die Lösung, die für mich funktionierte, war, "com.MyTask" sowohl in der Konfigurationszeit als auch in den Quellen verfügbar zu machen. ProjectA (der Elternteil) wurde hinzugefügt, um SourceSets von buildSrc / build.gradle zu erstellen:
%Vor%Jetzt können ProjectC und alle anderen Projekte MyTask verwenden. Zur gleichen Zeit ist es mit dem letzten Glas von ProjectB gebündelt.
Das Thema wurde auch zwischen Adam Murdoch, Luke Daley und Steve Ebersole gründlich diskutiert: Ссылка
Bearbeiten: Es war schlauer manipulieren Eltern BuildSrc als das eigenständige Projekt. So ist IntelliJ glücklich-glücklich.
Von der Gradle-Dokumentation 15.4. Abhängigkeiten zu einer Aufgabe hinzufügen :
Beispiel 15.13. Abhängigkeit von Aufgabe aus anderem Projekt hinzufügen
%Vor%Tags und Links gradle