Was ist der Hauptzweck der Verwendung einer buildSrc
-Datei als oberste Ebene im Gegensatz zu einem typischen Java-Projektlayout (src / main / java)?
Wenn ich ein Layout von
habe %Vor%oder
%Vor%Was wäre der Unterschied (oder der Grund dafür)? Ist es in mehreren Modulprojekten nützlicher? Selbst für ein Multi-Modul-Projekt konnte ich nicht so etwas wie
machen %Vor% Und dann haben Sie einfach eine build.gradle der obersten Ebene (auf der gleichen Ebene wie proj1
und proj2
), die allgemeine Einstellungen für die Projekte definiert?
buildSrc
ist ein separates build , mit dem Aufgaben, Plugins oder andere Klassen erstellt werden können, die in Build-Skripts des Hauptbuilds verwendet werden sollen , aber müssen nicht über Builds verteilt werden. (*) Es wäre nicht möglich, solche Klassen als Teil des Haupt-Builds zu erstellen, da sie existieren müssen, bevor die Build-Skripte des Haupt-Builds überhaupt kompiliert / ausgewertet werden können. und Gradle kompiliert / wertet alle Erstellungsskripts aus, bevor sie funktionieren (Konfigurations- oder Ausführungsphase).
Verglichen mit dem Einfügen des gesamten Build-Codes in Build-Skripte bietet buildSrc
Ihnen die Möglichkeit, Build-Code mehr wie regulären Code zu entwickeln, als Klassen, die Sie testen, in Ihre IDE importieren können usw. Es ist eine Möglichkeit, den Build zu erhalten Skripte einfach und DRY sogar für kompliziertere Builds.
buildSrc
wird häufiger in Multiprojekt-Builds gesehen, einfach weil größere Builds ihre eigenen benutzerdefinierten Aufgaben und Plug-ins eher implementieren.
Mit der Zeit wird buildSrc
zu einer allgemeineren Fähigkeit, mehrere abhängige Builds in einem einzigen Gradle-Aufruf auszuführen.
(*) Das Teilen von Klassen über Builds hinweg ist möglich, aber aufwendiger. Insbesondere müssen Sie die Klassen in einem Repository veröffentlichen, und aufwändige Builds müssen sie explizit von dort importieren, ähnlich wie beim Teilen von Produktionsbibliotheken zwischen Builds.
Tags und Links configuration gradle structure