![](/img/trans.png)
[英]Hibernate Validator : Using if - else kind of logic in annotation
[英]Using Hibernate Validator Annotation Processor with Kotlin (and Gradle)
所以我試圖讓Hibernate Validator Annotation Processor在Kotlin項目中工作,以檢查我的 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.