No processo de desenvolvimento do CUBA, usamos as três principais ferramentas de compilação - começamos com o Ant, depois mudamos para o Maven por um curto período de tempo, e agora estamos usando o Gradle e parece que continuaremos com ele no futuro próximo.
Não faz muito tempo, o Gradle 5.0 foi lançado. Esta versão possui um grande número de novos recursos que ajudarão os desenvolvedores a escrever scripts mais complexos e a montar seus projetos ainda mais rápido e sem problemas.

Kotlin DSL
A primeira inovação é o Kotlin DSL . Agora, os scripts de construção podem ser escritos no Kotlin, e realmente aceleram o trabalho devido à conclusão automática, basicamente. O realce do erro de sintaxe e outras coisas convenientes do IDEA também funcionam. Obviamente, o IDEA também tenta fazer tudo isso no Groovy, mas a digitação ainda forte se faz sentir. Afirma-se que o DSL Kotlin é estável, para que você possa usá-lo sem medo.
Eu tenho que mudar para Kotlin? Não, não é necessário, o Groovy DSL será suportado, não será abandonado. Em seguida, você precisa considerar cada projeto separadamente. Para usar o Kotlin DSL, você precisa do Gradle 5 e um JDK de pelo menos 8; em alguns casos, isso pode não ser aplicável. Além disso, o Groovy fornece maior flexibilidade nos scripts devido à digitação relaxada. De qualquer forma, a decisão depende dos desenvolvedores, mas se você ainda decidir mudar para o Kotlin, haverá um guia de migração .
Init interativo
Agora, finalmente, você não pode escrever um monte de chaves durante a montagem inicial do projeto, mas escolher o tipo de projeto, o idioma do script de construção e até a estrutura para testar no modo interativo. Escrevemos gradle init - e gostamos. Geração de projeto suportada no Kotlin!
Compilação incremental e processamento de anotação
O mecanismo de compilação incremental continua a se desenvolver (incluindo o processamento de anotações de bibliotecas como o Lombok) - não é necessário recompilar todo o código. Você pode criar suas próprias tarefas que suportam compilação incremental.
Os processos de compilação são acelerados devido ao cache de compilação, o trabalho com memória é otimizado.
Teste FailFast - os testes serão iniciados a partir do último erro (se houver, é claro).
Gerenciamento de Dependências
Suporte para arquivos de lista técnica - felicidades!
O ajuste fino das regras para substituição de versões é declarado, você pode escrever o código do programa para lidar com casos especialmente complexos diretamente no arquivo de montagem . No mesmo lugar - desativando dependências transitivas.
Você pode forçar o bloqueio da versão da dependência e impedir que ela seja substituída por versões mais antigas.
Além disso, a versão "congelamento" é suportada para dependências.
Nova API de tarefas
O processo de melhoria também continua no campo da criação de tarefas. Existem algumas coisas novas que certamente serão úteis para muitos.
API Worker , que permite executar tarefas em paralelo e com diferentes níveis de isolamento (mesmo em JVMs diferentes). Além da execução apenas paralela, você pode esperar outras tarefas serem concluídas.
API de tempo limite - para definir o tempo máximo de execução da tarefa.
API de prevenção de configuração - permite que você não crie ou configure tarefas que ainda não serão executadas.
Para resumir - uma boa ferramenta é ainda melhor, para o kotlin -, obrigado especial, agora você pode escrever tudo: front-end, back-end, cliente móvel e scripts de construção.