Jooq Gradle 插件抱怨缺少 slf4j StaticLoggerBinder

问题描述 投票:0回答:1

我正在使用

nu.studer.jooq
Jooq Glradle 插件版本 8.2.1 从数据库模式生成代码,但在 Gradle 输出中出现错误:

> Task :hermes:generateMariaJooq
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.

我认为我在 Gradle 依赖项部分中声明了正确的依赖项:

    // Jooq
    implementation group: 'org.jooq', name: 'jooq', version: "${jooqVersion}"
    implementation group: 'org.jooq', name: 'jooq-meta', version: "${jooqVersion}"
    implementation group: 'org.jooq', name: 'jooq-codegen', version: "${jooqVersion}"
    implementation group: 'org.mariadb.jdbc', name: 'mariadb-java-client', version: "${mariadbJavaClientVersion}"
    implementation group: 'com.h2database', name: 'h2', version: "${h2Version}"
    jooqGenerator group: 'org.mariadb.jdbc', name: 'mariadb-java-client', version: "${mariadbJavaClientVersion}"
    jooqGenerator group: 'com.h2database', name:'h2',  version: "${h2Version}"
    jooqGenerator group: 'org.jooq', name: 'jooq-meta-extensions', version: "${jooqVersion}"

    // Logging
    implementation group: 'org.apache.logging.log4j', name: 'log4j-api', version: "${log4jVersion}"
    implementation group: 'org.apache.logging.log4j', name: 'log4j-core', version: "${log4jVersion}"
    implementation group: 'org.apache.logging.log4j', name: 'log4j-slf4j-impl', version: "${log4jVersion}"

所以我不明白如何向jooq gradle插件提供SLF4J门面的实现。

我尝试过更改实现库,但没有成功

编辑

使用 --info 运行 gradle 任务我发现了命令行:

/opt/homebrew/Cellar/openjdk@17/17.0.8/libexec/openjdk.jdk/Contents/Home/bin/java -Dfile.encoding=UTF-8 -Duser.country=IT -Duser.language=en -Duser.variant -cp /Users/fox/.gradle/caches/modules-2/files-2.1/org.jooq/jooq-codegen/3.18.5/a631ba62a8f54e94e8540817e50aa29e56b1df9e/jooq-codegen-3.18.5.jar:/Users/fox/.gradle/caches/modules-2/files-2.1/org.mariadb.jdbc/mariadb-java-client/3.1.4/7f66d1f5afcacdb11ba34d2614933a206afbcff2/mariadb-java-client-3.1.4.jar:/Users/fox/.gradle/caches/modules-2/files-2.1/org.jooq/jooq-meta-extensions/3.18.5/92400bdf55a46f6425d5c5165777293920159447/jooq-meta-extensions-3.18.5.jar:/Users/fox/.gradle/caches/modules-2/files-2.1/com.h2database/h2/2.1.214/d5c2005c9e3279201e12d4776c948578b16bf8b2/h2-2.1.214.jar:/Users/fox/.gradle/caches/modules-2/files-2.1/org.jooq/jooq-meta/3.18.5/864745a8374280ec33af60c879da22277c4b97d0/jooq-meta-3.18.5.jar:/Users/fox/.gradle/caches/modules-2/files-2.1/org.jooq/jooq/3.18.5/de5d61b0cd7cb1e6e3d9a34fe4b4c1acc0bf42f4/jooq-3.18.5.jar:/Users/fox/.gradle/caches/modules-2/files-2.1/com.github.waffle/waffle-jna/3.2.0/6ac5882dea3a15575237ef5d1793c51279ae1335/waffle-jna-3.2.0.jar:/Users/fox/.gradle/caches/modules-2/files-2.1/io.r2dbc/r2dbc-spi/1.0.0.RELEASE/e3d15b2d27fdb8fdb76a181b21d5c752adf1d165/r2dbc-spi-1.0.0.RELEASE.jar:/Users/fox/.gradle/caches/modules-2/files-2.1/jakarta.xml.bind/jakarta.xml.bind-api/3.0.0/9275db6e21287df61690989254a0b46d8d31e99a/jakarta.xml.bind-api-3.0.0.jar:/Users/fox/.gradle/caches/modules-2/files-2.1/net.java.dev.jna/jna-platform/5.12.1/97406a297c852f4a41e688a176ec675f72e8329/jna-platform-5.12.1.jar:/Users/fox/.gradle/caches/modules-2/files-2.1/net.java.dev.jna/jna/5.12.1/b1e93a735caea94f503e95e6fe79bf9cdc1e985d/jna-5.12.1.jar:/Users/fox/.gradle/caches/modules-2/files-2.1/org.slf4j/jcl-over-slf4j/1.7.36/d877e195a05aca4a2f1ad2ff14bfec1393af4b5e/jcl-over-slf4j-1.7.36.jar:/Users/fox/.gradle/caches/modules-2/files-2.1/org.slf4j/slf4j-api/1.7.36/6c62681a2f655b49963a5983b8b0950a6120ae14/slf4j-api-1.7.36.jar:/Users/fox/.gradle/caches/modules-2/files-2.1/com.github.ben-manes.caffeine/caffeine/2.9.3/b162491f768824d21487551873f9b3b374a7fe19/caffeine-2.9.3.jar:/Users/fox/.gradle/caches/modules-2/files-2.1/org.checkerframework/checker-qual/3.23.0/2ce274da87ae21d940ded7b827d9069206ea3001/checker-qual-3.23.0.jar:/Users/fox/.gradle/caches/modules-2/files-2.1/org.reactivestreams/reactive-streams/1.0.3/d9fb7a7926ffa635b3dcaa5049fb2bfa25b3e7d0/reactive-streams-1.0.3.jar:/Users/fox/.gradle/caches/modules-2/files-2.1/com.sun.activation/jakarta.activation/2.0.0/f4e7519148dee347c7666f336210deedb8aca09d/jakarta.activation-2.0.0.jar:/Users/fox/.gradle/caches/modules-2/files-2.1/com.google.errorprone/error_prone_annotations/2.10.0/9bc20b94d3ac42489cf6ce1e42509c86f6f861a1/error_prone_annotations-2.10.0.jar org.jooq.codegen.GenerationTool /Users/fox/Documents/workspace/plcProject/hermes/build/tmp/generateMariaJooq/config.xml

没有

slf4j
的实现,所以真正的问题变成了:如何告诉 gradle jooq 插件添加 slf4j 实现 jar?

** 编辑 ** 要求对我发现的依赖项进行分级:

jooqGenerator - The classpath used to invoke the jOOQ code generator. Add your JDBC driver, generator extensions, and additional dependencies here.
+--- org.jooq:jooq-codegen -> 3.18.5
|    +--- org.jooq:jooq:3.18.5
|    |    \--- io.r2dbc:r2dbc-spi:1.0.0.RELEASE
|    |         \--- org.reactivestreams:reactive-streams:1.0.3
|    \--- org.jooq:jooq-meta:3.18.5
|         +--- org.jooq:jooq:3.18.5 (*)
|         \--- jakarta.xml.bind:jakarta.xml.bind-api:3.0.0
|              \--- com.sun.activation:jakarta.activation:2.0.0
+--- org.mariadb.jdbc:mariadb-java-client:3.1.4
|    \--- com.github.waffle:waffle-jna:3.2.0
|         +--- net.java.dev.jna:jna:5.12.1
|         +--- net.java.dev.jna:jna-platform:5.12.1
|         |    \--- net.java.dev.jna:jna:5.12.1
|         +--- org.slf4j:jcl-over-slf4j:1.7.36
|         |    \--- org.slf4j:slf4j-api:1.7.36
|         +--- org.slf4j:slf4j-api:1.7.36
|         +--- com.github.ben-manes.caffeine:caffeine:2.9.3
|         |    +--- org.checkerframework:checker-qual:3.19.0 -> 3.23.0
|         |    \--- com.google.errorprone:error_prone_annotations:2.10.0
|         \--- org.checkerframework:checker-qual:3.23.0
+--- com.h2database:h2:2.1.214
\--- org.jooq:jooq-meta-extensions:3.18.5
     +--- org.jooq:jooq-meta:3.18.5 (*)
     \--- com.h2database:h2:2.1.214

这是想要使用slf4j的

mariadb-java-client
!!!

java gradle jooq
1个回答
0
投票

我找到了解决方案! 正如 EDIT 中所示,问题是在

jooqGenerator
任务中
mariadb-java-client
希望使用
slf4j
。 在依赖项中,添加了
slf4j-api
接口的实现,但添加到
implementation 
gradle 任务中。

log4j-slf4j-impl
添加到
jooqGenerator
任务即可解决问题。

jooqGenerator group: 'org.apache.logging.log4j', name: 'log4j-slf4j-impl', version: "${log4jVersion}"
© www.soinside.com 2019 - 2024. All rights reserved.