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
pluginsbloque es el método más nuevo para aplicar complementos, y deben estar disponibles en el repositorio de complementos de Gradle . Elapplyenfoque es el método más antiguo pero más flexible de agregar un complemento a su compilación.El nuevo
pluginsmé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
pluginsmé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.pluginsfunciona en proyectos múltiples, de acuerdo con el tutorial de Gradle (Gradle versión 5.6.2) guides.gradle.org/creating-multi-project-builds/... Utilizapluginsblock withapply falsepara agregar el complemento al proyecto general, pero no agrega a la raíz del proyecto. El subproyecto usapluginsbloques nuevamente para agregar el complemento.pluginsmásapply plugin.apply pluginComo ya mencionó @cjstehno, este
apply plugines un método heredado que debe evitar.Con el nuevo
plugins blockmé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
pluginsbloque. Por ejemplo, en el proyecto maestroxyzse 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
pluginsbloque 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 Bootaplicación, y es por eso que estoy respondiendo esto nuevamente después de un tiempo. El siguiente ejemplo para usar elSpring Bootcomplemento me ayudó mucho:Lo que debería usarse actualmente:
Lo que se había usado antes de Gradle 2.1:
fuente
apply plugin xxxaplugins { id xxx }(Lo probé y no funcionó)