Aby udostępniać elementy w wielu projektach tej samej kompilacji, należy użyć allprojects { ... }
, itd. Ponadto dodatkowe właściwości (ext.foo = ...
) zadeklarowane w projekcie nadrzędnym są widoczne w podprojektach. Typowym idiomem jest posiadanie czegoś takiego jak ext.libs = [junit: "junit:junit:4.11", spring: "org.springframework:spring-core:3.1.0.RELEASE", ...]
w skrypcie budowania najwyższego poziomu. Podprojekty mogą wtedy selektywnie zawierać zależności za pomocą ich krótkiej nazwy. Powinieneś być w stanie znaleźć więcej informacji na ten temat w Gradle Forums.
Aby udostępnić logika całej buduje, można napisać plugin Script (foo.gradle
), umieścić go na serwerze WWW i dołączyć go buduje z apply from: "http://..."
lub napisać binarne wtyczki (klasa wykonawczych org.gradle.api.Plugin
), publikować jako Jar do repozytorium i dołącz go do kompilacji w sekcji apply plugin: ...
i buildscript {}
. Aby uzyskać szczegółowe informacje, zobacz Gradle User Guide i wiele próbek w pełnym rozkładzie Gradle.
Aktualnym ograniczeniem wtyczek skryptowych (ale nie binarnych) jest to, że nie są one buforowane. W związku z tym kompilacja zakończy się powodzeniem tylko wtedy, gdy może połączyć się z serwerem obsługującym wtyczkę.
Jeśli chodzi o drugie pytanie (które powinno być oddzielnym pytaniem), dostępnych jest kilka wtyczek wydawcy innych firm, na przykład https://github.com/townsfolk/gradle-release.
To co mam zrobić: http://stackoverflow.com/a/21139778/859225 Nadzieja to pomaga. – Zlatko