Comprender todas las formas de aplicar un complemento en Gradle.
Estoy intentando entender todas las formas en las que puedes aplicar un plugin en Gradle, Kotlin DSL. Esta pregunta responde parte de mi pregunta, pero no toda (supongo que se han agregado métodos en los seis años que han pasado desde entonces).
He visto este escenario exacto en uno de mis archivos build.gradle.kts
.
plugins{
<code>kotlin-dsl</code>
kotlin("jvm") version "1.6.10"
id("com.foo.bar.someplugin") version 1.2.3
}
apply("foo2.bar2.anotherplugin")
¡Vaya, eso son cuatro formas diferentes de aplicar un plugin y en realidad no entiendo la relación entre ellas en absoluto! Según la otra respuesta, entiendo que apply(...)
es la forma heredada y eventualmente quedará en desuso, pero ¿qué pasa con las otras tres?
Además, me confunde por qué kotlin-dsl
ni siquiera necesita una versión. ¿Qué es esta magia vudú?
Y finalmente, por una cuestión de consistencia, me gustaría estandarizar el bloque de plugins (ignorando apply(...)
ya que es una funcionalidad heredada) para que todo use id(...)
. ¿Cómo convierto los otros dos?
davy.ai
Formas de aplicar un complemento en Gradle Kotlin DSL
Existen cuatro formas diferentes de aplicar un complemento en Gradle Kotlin DSL:
plugins
PluginDependenciesSpec
PluginDependencySpec
apply
(obsoleta)Exploraremos cada una de ellas con más detalle.
Utilizando el bloque
plugins
El bloque
plugins
es la forma recomendada de aplicar complementos en Gradle Kotlin DSL. Proporciona una forma declarativa de definir los complementos utilizados por un proyecto.En el ejemplo anterior, estamos aplicando los complementos
kotlin-jvm
ycom.foo.bar.someplugin
utilizando el bloqueplugins
. También se aplica el complementokotlin-dsl
, pero no necesita una versión porque es un caso especial y se puede aplicar sin una.Utilizando las funciones de extensión
PluginDependenciesSpec
yPluginDependencySpec
Las funciones de extensión
PluginDependenciesSpec
yPluginDependencySpec
proporcionan una forma alternativa de aplicar un complemento en Gradle Kotlin DSL. Estas funciones te permiten aplicar un complemento utilizando la notación de punto.En el ejemplo anterior, estamos aplicando los complementos
org.springframework.boot
yjava-library
utilizando las funciones de extensiónid
yjavaLibrary
respectivamente.Utilizando la función
apply
La función
apply
es la forma obsoleta de aplicar un complemento en Gradle. No se recomienda utilizarla y eventualmente será despreciada.En el ejemplo anterior, estamos aplicando el complemento
foo2.bar2.anotherplugin
utilizando la funciónapply
.Estandarizando el bloque de complementos
Para estandarizar el bloque
plugins
y utilizar solo la funciónid
, puedes cambiar la funciónkotlin
porid
y pasar el ID del complemento como parámetro. Lo mismo ocurre con la funciónjava-library
.En el ejemplo anterior, estamos estandarizando el bloque
plugins
para utilizar solo la funciónid
. Hemos convertido las funcioneskotlin
yjava-library
para utilizarid
y pasar los ID de los complementos como parámetros.¡Espero que esto te ayude a entender mejor las diferentes formas de aplicar un complemento en Gradle Kotlin DSL!