Así que estoy tratando de hacer que el Procesador de anotaciones del validador de Hibernate funcione en un proyecto de Kotlin , para verificar mis anotaciones JSR 380, sin mucha suerte.
Desafortunadamente, la documentación no menciona cómo configurarlo con Gradle y, obviamente, con Kotlin tenemos que usar "Kapt" para habilitar los procesadores de anotaciones de Java.
Documentación del procesador de anotaciones del validador de Hibernate: http://docs.jboss.org/hibernate/stable/validator/reference/en-US/html_single/#validator-annotation-processor
Documentación de Kapt: https://kotlinlang.org/docs/reference/kapt.html
Actualmente tengo la siguiente configuración en mi archivo build.gradle relacionado con el procesador:
plugins { id "org.jetbrains.kotlin.kapt" version "1.3.11" ... } apply plugin: 'org.jetbrains.kotlin.kapt' ... dependencies { implementation 'org.hibernate:hibernate-validator:6.0.14.Final' implementation 'org.glassfish:javax.el:3.0.1-b09' kapt 'org.hibernate:hibernate-validator-annotation-processor:6.0.14.Final' ... } kapt { arguments { arg('methodConstraintsSupported', 'false') arg('verbose', 'true') } } Sin embargo, cada vez que construyo, no puedo ver ningún resultado relacionado con el procesador de anotaciones del validador y no obtengo ningún error de compilación cuando aplico deliberadamente una anotación incorrecta (por ejemplo, al aplicar una anotación @Min() a un campo de String ).
Si alguien pudiera aconsejarme sobre cómo hacer funcionar el procesador, ¡estaría eternamente agradecido! :)
Tengo esto funcionando en mi build.gradle.kts así (estoy usando Kotlin Script en lugar de Groovy):
plugins { ... id("org.jetbrains.kotlin.kapt") version "1.3.72" ... } dependencies { ... kapt( group = "org.hibernate.validator", name = "hibernate-validator-annotation-processor", version = "6.0.2.Final" ) ... }Esto correctamente me dio errores al compilar, pero solo cuando apliqué la anotación de validación al captador . Cuando lo apliqué por error solo al argumento del constructor, la validación no funcionó y no vi errores del procesador de anotaciones. Por ejemplo:
class Thing( @get:AssertTrue var name: String )