Como posso importar um script Gradle para outro?
Eu tenho um script gradle complexo que envolve uma grande quantidade de funcionalidades em torno da criação e implantação de vários projetos do netbeans em vários ambientes.
O script funciona muito bem, mas, em essência, tudo é configurado através de meia dúzia de mapas contendo informações do projeto e do ambiente.
Quero abstrair as tarefas para outro arquivo, para que eu possa definir meus mapas em um arquivo de compilação simples e importar as tarefas do outro arquivo. Dessa maneira, posso usar as mesmas tarefas principais para vários projetos e configurá-los com um conjunto simples de mapas.
Alguém pode me dizer como posso importar um arquivo gradle para outro, de maneira semelhante à tarefa do Ant? Até agora, rastreio os documentos de Gradle.
Informação adicional
Após a resposta de Tom abaixo, pensei em esclarecer exatamente o que quero dizer.
Basicamente, tenho um script gradle que executa vários subprojetos. No entanto, os subprojetos são todos projetos do Netbeans e vêm com seus próprios scripts de construção de formigas, então eu tenho tarefas gradle para chamar cada um deles.
Meu problema é que tenho algumas configurações na parte superior do arquivo, como:
projects = [
[name:"MySubproject1", shortname: "sub1", env:"mainEnv", cvs_module="mod1"],
[name:"MySubproject2", shortname: "sub2", env:"altEnv", cvs_module="mod2"]
]
Eu, então, gero tarefas como:
projects.each({
task "checkout_$it.shortname" << {
// Code to for example check module out from cvs using config from 'it'.
}
})
Eu tenho muitos desses tipos de snippets de geração de tarefas e todos são genéricos - eles dependem inteiramente da configuração na lista de projetos.
Então, o que eu quero é uma maneira de colocar isso em um script separado e importá-lo da seguinte maneira:
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.
Portanto, neste exemplo, o tasks.gradle terá todo o código genérico de geração de tarefas e será executado nos projetos definidos no arquivo build.gradle principal. Dessa forma, task.gradle é um arquivo que pode ser usado por todos os projetos grandes que consistem em vários subprojetos com arquivos de compilação do Netbeans.