我使用jvm-test-suite插件創建了一個新的測驗套件。
我添加了一些實作型別依賴項,它作業正常,沒有錯誤出現。但是我還想在該測驗套件中添加 lombak 依賴項,我使用implementation關鍵字嘗試了它,之后我檢查了專案是否正在編譯但在運行時 lombak 的那些注釋(例如:SneakyThrows)被忽略并且我得到了錯誤.
之后,我嘗試使用annotationProcessor關鍵字添加 lombak 依賴項,結果低于 gradle 同步時給出的錯誤。所以基本上看起來annotationProcessor關鍵字和testAnnotationProcessor沒有被識別,因此這個錯誤來了。
Exception is:
org.gradle.api.GradleScriptException: A problem occurred evaluating root project 'serverlessserver'.
at org.gradle.groovy.scripts.internal.DefaultScriptRunnerFactory$ScriptRunnerImpl.run(DefaultScriptRunnerFactory.java:93)
Caused by: groovy.lang.MissingMethodException: No signature of method: build_aiuizpn3ddvrwt4slowy7mi4q.testing() is applicable for argument types: (build_aiuizpn3ddvrwt4slowy7mi4q$_run_closure4) values: [build_aiuizpn3ddvrwt4slowy7mi4q$_run_closure4@74ada7e2]
Gradle 檔案片段:-
testing {
suites {
test {
useJUnitJupiter()
}
customTest(JvmTestSuite) {
dependencies {
implementation project
... // other dependencies
annotationProcessor 'org.projectlombok:lombok:1.18.22' // adding this line is resulting in error message
}
}
....
}
}
uj5u.com熱心網友回復:
我在他們的 slack 支持頻道上與 gradle 開發團隊進行了溝通。我得到了這個問題的答案,它解決了我的問題,因此我將其發布在這里供其他人使用。
默認情況下,插件在 testing/suites 塊內不提供直接注釋處理器支持,團隊正在實施它,并且可能他們會在未來的版本中支持它。
您仍然可以在 build.gradle 檔案的最外部依賴項塊中提及此注釋處理器以及測驗套件名稱。
示例 - build.gradle 示例檔案
dependencies {
.....
// dependencies you already have in your project
// add this line. "customTest" here is the name of test suite you defined.
customTestAnnotationProcessor('org.projectlombok:lombok:1.18.22')
}
您必須確保的另一件事是您在 build.gradle 檔案中的此依賴項塊之前定義了您的測驗套件。否則,依賴項中的 annotationProcessor 陳述句無法識別測驗套件并會出錯。
uj5u.com熱心網友回復:
直接來自龍目島官方網站。
repositories {
mavenCentral()
}
dependencies {
compileOnly 'org.projectlombok:lombok:1.18.22'
annotationProcessor 'org.projectlombok:lombok:1.18.22'
testCompileOnly 'org.projectlombok:lombok:1.18.22'
testAnnotationProcessor 'org.projectlombok:lombok:1.18.22'
}
Lombok 注解是在編譯程序中應用的,所以應該在compileOnlystage 中添加,而不是在runtimeOnly.
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/434121.html
