簡體   English   中英

在 Kotlin(和 Gradle)中使用 Hibernate Validator Annotation Processor

[英]Using Hibernate Validator Annotation Processor with Kotlin (and Gradle)

所以我試圖讓Hibernate Validator Annotation ProcessorKotlin項目中工作,以檢查我的 JSR 380 注釋,但運氣不佳。

不幸的是,文檔沒有提到如何使用 Gradle 進行設置,顯然對於 Kotlin,我們必須使用“Kapt”來啟用 Java 注釋處理器。

Hibernate Validator 注釋處理器文檔: http : //docs.jboss.org/hibernate/stable/validator/reference/en-US/html_single/#validator-annotation-processor

Kapt 文檔: https ://kotlinlang.org/docs/reference/kapt.html

我的 build.gradle 文件中目前有以下與處理器相關的配置:

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')
    }
}

但是,每當我構建時,我都看不到與驗證器注釋處理器相關的任何輸出,並且在故意應用不正確的注釋(例如,將@Min()注釋應用於String字段時@Min()不會出現任何構建錯誤。

如果有人可以就如何讓處理器工作提出建議,我將永遠感激不盡! :)

我在我的 build.gradle.kts 中得到了這樣的工作(我使用的是 Kotlin 腳本而不是 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"
    )
    ...
}

這在構建時正確地給了我錯誤,但僅當我將驗證注釋應用於getter 時 當我錯誤地將它應用於構造函數參數時,驗證不起作用,並且我沒有看到來自注釋處理器的錯誤。 例如:

class Thing(
    @get:AssertTrue
    var name: String
)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM