Um Inhalte in mehreren Projekten desselben Builds zu teilen, verwenden Sie allprojects { ... }
, subprojects { ... }
usw. Außerdem sind zusätzliche Eigenschaften (ext.foo = ...
), die in einem übergeordneten Projekt deklariert sind, in Teilprojekten sichtbar. Ein gängiges Idiom ist es, im Build-Skript der obersten Ebene etwas wie ext.libs = [junit: "junit:junit:4.11", spring: "org.springframework:spring-core:3.1.0.RELEASE", ...]
zu haben. Teilprojekte können dann Abhängigkeiten selektiv durch ihren Kurznamen einschließen. Sie sollten in der Lage sein, weitere Informationen dazu in der Gradle Forums finden.
Logik über zu teilen baut, können Sie entweder eine Skript-Plugin schreiben (foo.gradle
), ist es auf einem Web-Server aufgestellt, und es ist in mit apply from: "http://..."
baut, oder ein binäres Plugin schreiben (eine Klasse org.gradle.api.Plugin
Implementierung), veröffentlichen es als Jar zu einem Repository, und es in Builds mit und einem buildscript {}
Abschnitt enthalten. Einzelheiten finden Sie unter Gradle User Guide und die vielen Beispiele in der vollständigen Gradle-Verteilung.
Eine aktuelle Einschränkung von Script-Plugins (aber nicht binär) ist, dass sie nicht zwischengespeichert werden. Daher wird ein Build nur dann erfolgreich ausgeführt, wenn eine Verbindung mit dem Webserver hergestellt werden kann, der das Plug-in bereitstellt.
In Bezug auf Ihre zweite Frage (die eine separate Frage sein sollte), gibt es ein paar Plugins von Drittanbietern, zum Beispiel https://github.com/townsfolk/gradle-release.
Das ist, was ich tue: http://stackoverflow.com/a/21139778/859225 Hoffnung, das hilft. – Zlatko