我的Spring启动应用在尝试运行jar时遇到了此错误,但在Intellij中运行时却没有:
Caused by: java.util.ServiceConfigurationError: org.apache.logging.log4j.spi.Provider: Provider org.apache.logging.slf4j.SLF4JProvider not found
但是,当运行mvn dependency:tree
时,我可以看到slf4j jar:
+- org.springframework.boot:spring-boot-starter-web:jar:2.0.2.RELEASE:compile
| +- org.springframework.boot:spring-boot-starter:jar:2.0.2.RELEASE:compile
| | +- org.springframework.boot:spring-boot:jar:2.0.2.RELEASE:compile
| | +- org.springframework.boot:spring-boot-autoconfigure:jar:2.0.2.RELEASE:compile
| | +- org.springframework.boot:spring-boot-starter-logging:jar:2.0.2.RELEASE:compile
| | | +- org.apache.logging.log4j:log4j-to-slf4j:jar:2.10.0:compile
| | | \- org.slf4j:jul-to-slf4j:jar:1.7.25:compile
还有
+- org.testcontainers:testcontainers:jar:1.7.1:test
| +- org.slf4j:slf4j-api:jar:1.7.25:compile
| +- org.slf4j:slf4j-ext:jar:1.7.25:test
我在这里想念什么?
答案 0 :(得分:0)
我的猜测是,该类是由您的一个测试依赖项拾取的,因此当您在IntelliJ中运行时,它位于类路径中,但是当您构建可运行的jar时,它不会被拉到胖的jar中。 >
看看它在什么罐子里,并检查它不在测试范围内。