Eu tenho um script gradle complexo que envolve uma carga de funcionalidade em torno da construção e implantação de uma série de projetos netbeans em vários ambientes.
O script funciona muito bem, mas basicamente é configurado por meio de meia dúzia de mapas contendo informações de projeto e ambiente.
Quero abstrair as tarefas em outro arquivo, para que possa simplesmente definir meus mapas em um arquivo de construção simples e importar as tarefas de outro arquivo. Dessa forma, posso usar as mesmas tarefas principais para vários projetos e configurar esses projetos com um simples conjunto de mapas.
Alguém pode me dizer como posso importar um arquivo gradle para outro, de maneira semelhante à tarefa do Ant? Pesquisei os documentos de Gradle sem sucesso até agora.
Informação adicional
Após a resposta de Tom abaixo, pensei em tentar esclarecer exatamente o que quero dizer.
Basicamente, tenho um script gradle que executa uma série de subprojetos. No entanto, os subprojetos são todos projetos Netbeans e vêm com seus próprios scripts de construção de formigas, então tenho tarefas no gradle para chamar cada um deles.
Meu problema é que tenho algumas configurações no topo do arquivo, como:
projects = [
[name:"MySubproject1", shortname: "sub1", env:"mainEnv", cvs_module="mod1"],
[name:"MySubproject2", shortname: "sub2", env:"altEnv", cvs_module="mod2"]
]
Em seguida, 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 trechos de geração de tarefas, e todos eles 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, tasks.gradle terá todo o código de geração de tarefa genérica e será executado para os projetos definidos no arquivo build.gradle principal. Desta forma, tasks.gradle é um arquivo que pode ser usado por todos os grandes projetos que consistem em uma série de subprojetos com arquivos de construção do Netbeans.
apply from
executa imediatamente as tarefas externas. Isso pode não ser preferível na lógica de execução (ou seja, eu gostaria de executar as tarefas quando eu quiser, não imediatamente).
apply from
executa imediatamente as tarefas externas. Não se deixe enganar. Tarefas externas são configuradas, não executadas.