Der Fehler ist:
Code: Select all
java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory
at nl.altindag.log.util.LogbackUtils.getSlf4jLogger(LogbackUtils.java:66)
at nl.altindag.log.util.LogbackUtils.getLogger(LogbackUtils.java:52)
at nl.altindag.log.LogCaptor.(LogCaptor.java:56)
at nl.altindag.log.LogCaptor.forName(LogCaptor.java:91)
at [email protected]/nl.altindag.ssl.keymanager.KeyManagerFactoryWrapperShould.(KeyManagerFactoryWrapperShould.java:41)
at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
at java.base/java.util.Optional.orElseGet(Optional.java:369)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1541)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1541)
Caused by: java.lang.ClassNotFoundException: org.slf4j.LoggerFactory
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:526)
... 9 more
Code: Select all
[INFO] --- dependency:3.7.0:tree (default-cli) @ ayza ---
[INFO] io.github.hakky54:ayza:jar:10.0.1-SNAPSHOT
[INFO] +- io.github.hakky54:yaslf4j:jar:1.0.5:compile
[INFO] +- org.junit.jupiter:junit-jupiter-api:jar:5.14.0:test
[INFO] | +- org.opentest4j:opentest4j:jar:1.3.0:test
[INFO] | +- org.junit.platform:junit-platform-commons:jar:1.14.0:test
[INFO] | \- org.apiguardian:apiguardian-api:jar:1.1.2:test
[INFO] +- org.junit.jupiter:junit-jupiter-engine:jar:5.14.0:test
[INFO] | \- org.junit.platform:junit-platform-engine:jar:1.14.0:test
[INFO] +- org.mockito:mockito-junit-jupiter:jar:5.11.0:test
[INFO] | \- org.mockito:mockito-core:jar:5.11.0:test
[INFO] | +- net.bytebuddy:byte-buddy-agent:jar:1.17.8:test
[INFO] | \- org.objenesis:objenesis:jar:3.3:test
[INFO] +- org.assertj:assertj-core:jar:3.27.6:test
[INFO] | \- net.bytebuddy:byte-buddy:jar:1.17.8:test
[INFO] +- io.github.hakky54:logcaptor:jar:2.12.1:test
[INFO] | +- ch.qos.logback:logback-classic:jar:1.3.15:test
[INFO] | | \- ch.qos.logback:logback-core:jar:1.3.15:test
[INFO] | +- org.apache.logging.log4j:log4j-to-slf4j:jar:2.25.1:test
[INFO] | | \- org.apache.logging.log4j:log4j-api:jar:2.25.1:test
[INFO] | \- org.slf4j:jul-to-slf4j:jar:2.0.17:test
[INFO] +- io.github.hakky54:ssl-server:jar:1.0.8:test
[INFO] | +- io.netty:netty-codec-http:jar:4.2.4.Final:test
[INFO] | | +- io.netty:netty-common:jar:4.2.4.Final:test
[INFO] | | +- io.netty:netty-buffer:jar:4.2.4.Final:test
[INFO] | | +- io.netty:netty-transport:jar:4.2.4.Final:test
[INFO] | | | \- io.netty:netty-resolver:jar:4.2.4.Final:test
[INFO] | | +- io.netty:netty-codec-base:jar:4.2.4.Final:test
[INFO] | | +- io.netty:netty-codec-compression:jar:4.2.4.Final:test
[INFO] | | \- io.netty:netty-handler:jar:4.2.4.Final:test
[INFO] | | \- io.netty:netty-transport-native-unix-common:jar:4.2.4.Final:test
[INFO] | \- org.bouncycastle:bcpkix-jdk18on:jar:1.82:test
[INFO] | \- org.bouncycastle:bcutil-jdk18on:jar:1.82:test
[INFO] | \- org.bouncycastle:bcprov-jdk18on:jar:1.82:test
[INFO] \- org.java-websocket:Java-WebSocket:jar:1.6.0:test
[INFO] \- org.slf4j:slf4j-api:jar:2.0.13:test
Wenn ich mvn dependency:list ausführe Es zeigt auch korrekt an, dass slf4j-api vorhanden ist, siehe hier:
Code: Select all
[INFO] The following files have been resolved:
[INFO] io.github.hakky54:yaslf4j:jar:1.0.5:compile -- module nl.altindag.yaslf4j
[INFO] org.junit.jupiter:junit-jupiter-api:jar:5.14.0:test -- module org.junit.jupiter.api
[INFO] org.opentest4j:opentest4j:jar:1.3.0:test -- module org.opentest4j
[INFO] org.junit.platform:junit-platform-commons:jar:1.14.0:test -- module org.junit.platform.commons
[INFO] org.apiguardian:apiguardian-api:jar:1.1.2:test -- module org.apiguardian.api
[INFO] org.junit.jupiter:junit-jupiter-engine:jar:5.14.0:test -- module org.junit.jupiter.engine
[INFO] org.junit.platform:junit-platform-engine:jar:1.14.0:test -- module org.junit.platform.engine
[INFO] org.mockito:mockito-junit-jupiter:jar:5.11.0:test -- module org.mockito.junit.jupiter [auto]
[INFO] org.mockito:mockito-core:jar:5.11.0:test -- module org.mockito [auto]
[INFO] net.bytebuddy:byte-buddy-agent:jar:1.17.8:test -- module net.bytebuddy.agent
[INFO] org.objenesis:objenesis:jar:3.3:test -- module org.objenesis [auto]
[INFO] org.assertj:assertj-core:jar:3.27.6:test -- module org.assertj.core
[INFO] net.bytebuddy:byte-buddy:jar:1.17.8:test -- module net.bytebuddy
[INFO] io.github.hakky54:logcaptor:jar:2.12.1:test -- module nl.altindag.logcaptor
[INFO] ch.qos.logback:logback-classic:jar:1.3.15:test -- module ch.qos.logback.classic
[INFO] ch.qos.logback:logback-core:jar:1.3.15:test -- module ch.qos.logback.core
[INFO] org.apache.logging.log4j:log4j-to-slf4j:jar:2.25.1:test -- module org.apache.logging.log4j.to.slf4j
[INFO] org.apache.logging.log4j:log4j-api:jar:2.25.1:test -- module org.apache.logging.log4j
[INFO] org.slf4j:jul-to-slf4j:jar:2.0.17:test -- module jul.to.slf4j
[INFO] io.github.hakky54:ssl-server:jar:1.0.8:test -- module nl.altindag.ssl.server
[INFO] io.netty:netty-codec-http:jar:4.2.4.Final:test -- module io.netty.codec.http
[INFO] io.netty:netty-common:jar:4.2.4.Final:test -- module io.netty.common
[INFO] io.netty:netty-buffer:jar:4.2.4.Final:test -- module io.netty.buffer
[INFO] io.netty:netty-transport:jar:4.2.4.Final:test -- module io.netty.transport
[INFO] io.netty:netty-resolver:jar:4.2.4.Final:test -- module io.netty.resolver
[INFO] io.netty:netty-codec-base:jar:4.2.4.Final:test -- module io.netty.codec
[INFO] io.netty:netty-codec-compression:jar:4.2.4.Final:test -- module io.netty.codec.compression
[INFO] io.netty:netty-handler:jar:4.2.4.Final:test -- module io.netty.handler
[INFO] io.netty:netty-transport-native-unix-common:jar:4.2.4.Final:test -- module io.netty.transport.unix.common
[INFO] org.bouncycastle:bcpkix-jdk18on:jar:1.82:test -- module org.bouncycastle.pkix
[INFO] org.bouncycastle:bcutil-jdk18on:jar:1.82:test -- module org.bouncycastle.util
[INFO] org.bouncycastle:bcprov-jdk18on:jar:1.82:test -- module org.bouncycastle.provider
[INFO] org.java-websocket:Java-WebSocket:jar:1.6.0:test -- module org.java_websocket
[INFO] org.slf4j:slf4j-api:jar:2.0.13:test -- module org.slf4j
Das Seltsame daran ist, dass es funktioniert, wenn ich mvn clean install vom Terminal aus ausführe. Wenn ich den Test von Intellij aus ausführe, wie unten gezeigt, schlägt er fehl

Wie reproduziere ich?
- Git-Klon ausführen https://github.com/Hakky54/ayza.git
- Führen Sie Git Switch Feature/make-slf4j-logger-optional aus
- Stellen Sie sicher, dass Java 11 oder höher konfiguriert ist
- Führen Sie MVN Clean Install aus
- Projekt aus Intellij IDEA öffnen
- Test im Explorer ausführen, wie im Screenshot oben gezeigt
Wenn ich mir den Maven-Abhängigkeitsbaum, die Maven-Abhängigkeitsliste und die Abhängigkeitsdeklarationen im POM ansehe, habe ich das Gefühl, dass alles in Ordnung ist. Wenn Sie es im Terminal ausführen, wird bestätigt, dass es wie erwartet funktioniert. Ich habe also das Gefühl, dass Intellij Schwierigkeiten hat, die Abhängigkeiten aufzulösen, aber ich bin mir nicht sicher. Weiß jemand, was ich möglicherweise falsch gemacht habe, oder sollte ich Intellij anders konfigurieren? Als Randbemerkung habe ich ungültige Caches ausgeführt. Ich habe es unter Mac OS und Linux/Pop OS versucht und habe die gleichen Fehler erhalten.
Mobile version