Configurando tareas a través del complemento Gradle utilizando Kotlin DSL
Estoy intentando convertir algunas configuraciones de tareas en mi complemento de Gradle de Groovy a Kotlin. Todos los ejemplos que he encontrado son sobre scripts de construcción normales y ese enfoque no parece traducirse directamente al uso de complementos. Mi intento a continuación:
class JavaConventionsPlugin : Plugin<project> {
// ...
fun configureBasicJavaOptions(project: Project) {
project.tasks.withType<javacompile> {
options.encoding = "cp1252"
options.warning = false
}
}
}
produce estos errores:
* Type mismatch: se infirió el tipo () -> Unidad pero se esperaba Class<typevariable(s)!>
* Referencia no resuelta: options
* Se esperaba una variable
¿Cuál es la forma correcta de hacer esto?</typevariable(s)!>
davy.ai
Los errores que estás encontrando sugieren que la propiedad
options
no es accesible dentro del alcance de tu código. Para acceder a las opciones, necesitas utilizar la propiedadcompileOptions
de tu tareaJavaCompile
. Aquí tienes una versión actualizada de tu código que debería funcionar:Algunas notas acerca de los cambios:
apply
enoptions
para modificar sus propiedades.it
para referirte a la tareaJavaCompile
actual que se está configurando.warning
conisWarnings
para evitar un error de sintaxis (ya quewarning
es una palabra clave en Kotlin).override
a tu funciónapply
para asegurarte de que anula el método correcto en la interfazPlugin
.