No entiendo el bloque de complementos de Gradle
apply plugin: 'someplugin1'
apply plugin: 'maven'
y otro:
plugins {
id 'org.hidetake.ssh' version '1.1.2'
}
En el primer bloque tenemos un nombre de complemento. en el segundo paquete y versión. No entiendo dónde debo usar el primer bloque y cuándo el segundo.
groovy
gradle
gradle-plugin
Yevgen Kulik
fuente
fuente
Respuestas:
El
plugins
bloque es el método más nuevo para aplicar complementos, y deben estar disponibles en el repositorio de complementos de Gradle . Elapply
enfoque es el método más antiguo pero más flexible de agregar un complemento a su compilación.El nuevo
plugins
método no funciona en configuraciones multiproyecto (subprojects
,allprojects
), pero funcionará en la configuración de compilación para cada proyecto secundario.Creo que a medida que avanza la funcionalidad, el
plugins
método de configuración superará el enfoque anterior, pero en este punto ambos pueden ser y se usan simultáneamente.fuente
plugins {...}
) no funciona para sus complementos privados o complementos de la empresa que no están publicados en el repositorio oficial de complementos de Gradle. Es por eso que espero que el viejo enfoque al menos sobreviva hasta que el nuevo admita la búsqueda en repositorios privados.plugins
funciona en proyectos múltiples, de acuerdo con el tutorial de Gradle (Gradle versión 5.6.2) guides.gradle.org/creating-multi-project-builds/... Utilizaplugins
block withapply false
para agregar el complemento al proyecto general, pero no agrega a la raíz del proyecto. El subproyecto usaplugins
bloques nuevamente para agregar el complemento.plugins
másapply plugin
.apply plugin
Como ya mencionó @cjstehno, este
apply plugin
es un método heredado que debe evitar.Con el nuevo
plugins block
método, puede agregar un complemento y controlar cuándo aplicarlo utilizando un parámetro opcionalapply
:Todavía usaría el método heredado en situaciones en las que desea aplicar un complemento ya agregado pero no aplicado en su
plugins
bloque. Por ejemplo, en el proyecto maestroxyz
se agrega un complemento pero no se aplica, y debe aplicarse solo en un subproyectosubPro
:Tenga en cuenta que ya no necesita la versión. La versión se requiere en el
plugins
bloque a menos que utilice uno de los complementos del núcleo Gradle, tales comojava
,scala
, ...Pasé un tiempo entendiendo la diferencia al intentar crear una
Spring Boot
aplicación, y es por eso que estoy respondiendo esto nuevamente después de un tiempo. El siguiente ejemplo para usar elSpring Boot
complemento me ayudó mucho:Lo que debería usarse actualmente:
Lo que se había usado antes de Gradle 2.1:
fuente
apply plugin xxx
aplugins { id xxx }
(Lo probé y no funcionó)