Ho uno script gradle complesso che avvolge un carico di funzionalità attorno alla creazione e alla distribuzione di numerosi progetti netbeans in un numero di ambienti.Come posso importare uno script Gradle in un altro?
Lo script funziona molto bene, ma in sostanza è tutto configurato attraverso una mezza dozzina di mappe contenenti 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 file di build semplice e importare le attività dall'altro file. In questo modo, posso utilizzare le stesse attività di base per un numero di progetti e configurare quei progetti con un semplice insieme di mappe.
Qualcuno può dirmi come posso importare un file gradle in un altro, in modo simile al compito di Ant? Ho trascinato i documenti di Gradle inutilmente fino ad ora.
Altre Informazioni
Dopo la risposta di Tom di seguito, ho pensato di provare e chiarire esattamente quello che voglio dire.
Fondamentalmente ho uno script gradle che esegue un numero di sottoprogetti. Tuttavia, i sottoprogetti sono tutti progetti di Netbeans e sono dotati di propri script di formica, quindi ho compiti in grado di chiamare ciascuno di questi.
Il mio problema è che ho un po 'di configurazione della parte superiore del file, come ad esempio:
projects = [
[name:"MySubproject1", shortname: "sub1", env:"mainEnv", cvs_module="mod1"],
[name:"MySubproject2", shortname: "sub2", env:"altEnv", cvs_module="mod2"]
]
ho quindi generare compiti quali:
projects.each({
task "checkout_$it.shortname" << {
// Code to for example check module out from cvs using config from 'it'.
}
})
ho molte di queste specie 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 mettere questo in uno script separato e importarlo nel seguente sorta di passaggio:
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 avrà tutta la generazione degli esercizi generici inserisci 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 costituiti da un numero di sottoprogetti con i file di build ant di Netbeans.
considerare "applicabile a decorrere: 'other.gradle'" costruire importare dichiarazioni esterne. (Vedi "12.4 Configurare il progetto usando uno script di compilazione esterno" qui http://gradle.org/0.9-preview-1/docs/userguide/tutorial_this_and_that.html#sec:configuring_using_external_script) –
@PetrGladkikh 'apply from' esegue immediatamente i compiti esterni. Questo potrebbe non essere preferibile nella logica di esecuzione (ad esempio, vorrei eseguire le attività quando voglio, non subito). –
Questa affermazione nel commento sopra è ** non vera **: 'apply from' esegue immediatamente le attività esterne. Non farti ingannare. Le attività esterne sono configurate, non eseguite. – Jarekczek