gradle: kotlin(“jvm”) vs id(“org.jetbrains.kotlin.jvm”) gradle: kotlin(“jvm”) vs id(“org.jetbrains.kotlin.jvm”) Ambas son formas de establecer una dependencia en un proyecto Gradle para el lenguaje de programación Kotlin en la plataforma jvm. La sintaxis “kotlin(“jvm”)” es una forma abreviada y más concisa de especificar la dependencia. Esta forma utiliza un bloque llamado “kotlin” y pasa como argumento la plataforma “jvm”. Es comúnmente usada para proyectos Kotlin en la plataforma jvm. La sintaxis “id(“org.jetbrains.kotlin.jvm”)” es una forma más explícita de especificar la dependencia. Esta forma utiliza un bloque llamado “id” y pasa como argumento la ruta completa de la dependencia “org.jetbrains.kotlin.jvm”. Es comúnmente usada cuando se desea especificar de manera más precisa la dependencia requerida. En resumen, ambas formas son válidas y logran el mismo resultado, establecer una dependencia para Kotlin en la plataforma jvm. La elección entre una u otra depende de las preferencias y necesidades del proyecto.
En el archivo gradle.build.kts
, ¿hay alguna diferencia entre los siguientes dos?
plugins {
id("org.jetbrains.kotlin.jvm") version "1.5.31" // forma simple
}
plugins {
kotlin("jvm") version "1.5.31" // forma indirecta
}
¿Hay alguna razón para no usar id("org.jetbrains.kotlin.jvm")
?
Contexto:
- Estoy bastante seguro de que funcionalmente estos dos son idénticos. (a partir del código decompilado)
- Prefiero usar
id("org.jetbrains.kotlin.jvm")
. (por ejemplo, los errores de Gradle contienenorg.jetbrains.kotlin.jvm
, nokotlin("jvm")
) - Algunos (¿la mayoría?) de los documentos utilizan
kotlin("jvm")
kotlinlang.org/..,
pero también se utilizaid("org.jetbrains.kotlin.jvm")
plugins.gradle.org/plugin/org.jetbrains.kotlin.jvm docs.gradle.org/current/samples/sample_building_kotlin_libraries.html,
por lo que la “forma no documentada” no debería aplicarse. - Supongo que me estoy perdiendo algo, porque no logro entender la razón de la existencia de
kotlin("jvm")
. (en realidad, tengo dos teorías, ambas parecen insuficientes: 17 caracteres parecen ser muy importantes para alguien, factor de “coolness”)
davy.ai
Basándose en el contexto proporcionado, no parece haber ninguna razón en particular para no usar
id("org.jetbrains.kotlin.jvm")
. Funcionalmente, ambos bloquesplugins
son idénticos, y hay ejemplos de ambos en la documentación oficial y en plugins. Puede haber razones personales o estéticas para elegir uno sobre el otro, pero en última instancia parece ser una cuestión de preferencia. Es posible que exista alguna razón histórica o técnica para la existencia dekotlin("jvm")
, pero basándose en la información disponible, no está claro.