Per condividere elementi all'interno di più progetti della stessa build, utilizzare allprojects { ... }
, subprojects { ... }
, ecc. Inoltre, le proprietà aggiuntive (ext.foo = ...
) dichiarate in un progetto padre sono visibili nei sottoprogetti. Un idioma comune è quello di avere qualcosa come ext.libs = [junit: "junit:junit:4.11", spring: "org.springframework:spring-core:3.1.0.RELEASE", ...]
nello script di build di primo livello. I progetti secondari possono quindi includere in modo selettivo le dipendenze in base al loro nome breve. Dovresti essere in grado di trovare maggiori informazioni al riguardo nel Gradle Forums.
Per condividere la logica si basa tutto, è possibile scrivere un plugin copione (foo.gradle
), metterlo su un server web, e comprendono in costruisce con apply from: "http://..."
, o scrivere un plugin binario (una classe che implementa org.gradle.api.Plugin
), pubblicare è come un Jar per un repository e includerlo nelle build con apply plugin: ...
e una sezione buildscript {}
. Per i dettagli, vedere Gradle User Guide e i numerosi esempi nella distribuzione Gradle completa.
Una limitazione corrente di script (ma non binari) è che non vengono memorizzati nella cache. Pertanto, una compilazione avrà esito positivo solo se è in grado di connettersi al server Web che sta servendo il plug-in.
Per quanto riguarda la seconda domanda (che avrebbe dovuto essere una domanda separata), sono disponibili un paio di plug-in di rilascio di terze parti, ad esempio https://github.com/townsfolk/gradle-release.
fonte
2013-03-18 08:23:32
Questo è quello che faccio: http://stackoverflow.com/a/21139778/859225 Spero che questo aiuti. – Zlatko