Ho uno script gradle complesso che racchiude un carico di funzionalità attorno alla creazione e alla distribuzione di una serie di progetti netbeans in un numero di ambienti.
Lo script funziona molto bene, ma in sostanza è tutto configurato attraverso una mezza dozzina di mappe che contengono informazioni sul progetto e sull'ambiente.
Desidero astrarre le attività in un altro file, in modo da poter semplicemente definire le mie mappe in un semplice file di build e importare le attività dall'altro file. In questo modo, posso utilizzare le stesse attività principali per una serie di progetti e configurarli con un semplice set di mappe.
Qualcuno può dirmi come posso importare un file gradle in un altro, in modo simile al compito di Ant? Finora ho cercato inutilmente i documenti di Gradle.
Informazioni addizionali
Dopo la risposta di Tom di seguito, ho pensato di provare a chiarire esattamente cosa intendo.
Fondamentalmente ho uno script gradle che esegue una serie di sottoprogetti. Tuttavia, i sottoprogetti sono tutti progetti Netbeans e vengono forniti con i propri script di compilazione delle formiche, quindi ho compiti in gradle per chiamare ciascuno di questi.
Il mio problema è che ho alcune configurazioni all'inizio del file, come ad esempio:
projects = [
[name:"MySubproject1", shortname: "sub1", env:"mainEnv", cvs_module="mod1"],
[name:"MySubproject2", shortname: "sub2", env:"altEnv", cvs_module="mod2"]
]
Genero quindi attività come:
projects.each({
task "checkout_$it.shortname" << {
// Code to for example check module out from cvs using config from 'it'.
}
})
Ho molti di questi tipi di frammenti di generazione di attività e tutti sono generici: dipendono interamente dalla configurazione nell'elenco dei progetti.
Quindi quello che voglio è un modo per metterlo in uno script separato e importarlo nel seguente modo:
projects = [
[name:"MySubproject1", shortname: "sub1", env:"mainEnv", cvs_module="mod1"],
[name:"MySubproject2", shortname: "sub2", env:"altEnv", cvs_module="mod2"]
]
import("tasks.gradle") // This will import and run the script so that all tasks are generated for the projects given above.
Quindi, in questo esempio, tasks.gradle includerà tutto il codice generico per la generazione di attività e verrà eseguito per i progetti definiti nel file build.gradle principale. In questo modo, tasks.gradle è un file che può essere utilizzato da tutti i progetti di grandi dimensioni che consistono in un numero di sottoprogetti con i file di compilazione di Netbeans.
apply from
esegue immediatamente le attività esterne. Questo potrebbe non essere preferibile nella logica di esecuzione (cioè vorrei eseguire le attività quando voglio, non subito).
apply from
esegue immediatamente le attività esterne. Non farti fuorviare. Le attività esterne vengono configurate, non eseguite.