Eu não entendo o bloco de plugins Gradle
apply plugin: 'someplugin1'
apply plugin: 'maven'
e outro:
plugins {
id 'org.hidetake.ssh' version '1.1.2'
}
No primeiro bloco, temos algum nome de plugin. no segundo pacote e versão. Não entendo onde devo usar o primeiro bloco e quando o segundo.
groovy
gradle
gradle-plugin
Yevgen Kulik
fonte
fonte
Respostas:
O
plugins
bloco é o método mais novo de aplicação de plug-ins e eles devem estar disponíveis no repositório de plug-in Gradle . Aapply
abordagem é o método mais antigo e flexível de adicionar um plug-in à sua compilação.O novo
plugins
método não funciona em configurações de vários projetos (subprojects
,allprojects
), mas funcionará na configuração de compilação para cada projeto filho.Eu pensaria que, à medida que a funcionalidade progride, o
plugins
método de configuração ultrapassará a abordagem mais antiga, mas, neste momento, ambas podem ser e são usadas simultaneamente.fonte
plugins {...}
) não funciona para seus plug-ins particulares ou da empresa que não são publicados no repositório oficial do plug-in Gradle. É por isso que espero que a abordagem antiga pelo menos sobreviva até que a nova suporte à pesquisa em repositórios particulares.plugins
funciona em multi-projeto, de acordo com o tutorial da Gradle (versão 5.6.2 da Gradle) Guides.gradle.org/creating-multi-project-builds/… Usaplugins
block withapply false
para adicionar o plug-in ao projeto geral, mas não adiciona para o projeto raiz. O subprojeto usaplugins
blocos novamente para adicionar o plugin.plugins
excessoapply plugin
.apply plugin
Como já mencionado por @cjstehno, o
apply plugin
é um método legado que você deve evitar.Com o novo
plugins block
método, você pode adicionar um plug-in e controlar quando aplicá-lo usando um parâmetro opcionalapply
:Você ainda usaria o método legado em situações nas quais deseja aplicar um plug-in já adicionado, mas não aplicado, em seu
plugins
bloco. Por exemplo, no projeto mestre, um plugxyz
- in é adicionado, mas não aplicado, e deve ser aplicado apenas em um subprojetosubPro
:Observe que você não precisa mais da versão. A versão é necessária no
plugins
bloco, a menos que você está usando um dos plugins Núcleo Gradle, tais comojava
,scala
...Passei algum tempo entendendo a diferença enquanto tentava criar um
Spring Boot
aplicativo, e é por isso que respondo novamente depois de um tempo. O exemplo a seguir para usar oSpring Boot
plug-in me ajudou muito:O que deve ser usado atualmente:
O que havia sido usado antes do Gradle 2.1:
fonte
apply plugin xxx
paraplugins { id xxx }
(tentei e não funcionou)