Gradle + Tomcat plugin + slf4j



我使用 apply plugin: 'com.bmuschko.tomcat' 进行 tomcat 部署,我们通常使用 maven,但这次我们改为 gradle,经过几次尝试使用 intellijidea 作为我的 IDE,我无法运行tomcatRun任务,有一个奇怪的错误说。

Failed to instantiate SLF4J LoggerFactory
Reported exception:
java.lang.NoClassDefFoundError: org/slf4j/spi/LoggerFactoryBinder
    at java.lang.ClassLoader.defineClass1(Native Method)
....
....
Caused by: java.lang.IllegalStateException: org.slf4j.LoggerFactory could not be successfully initialized.
at org.slf4j.LoggerFactory.getILoggerFactory(LoggerFactory.java:354)
at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:294)

我已经在gradle.build中有了这个配置

   log4jVersion = '1.2.17'
   slf4jVersion = '1.7.12'
   compile "log4j:log4j:$log4jVersion"
   compile "org.slf4j:slf4j-log4j12:$slf4jVersion"

我也只使用 gradle 并运行 gradle tomcatRun 同样的情况,我尝试的 gradle 版本是 2.6 和 2.10,结果相同。

似乎战争文件是使用

库正确创建的,但是使用插件和 gradle 会做出奇怪的组合,这里有什么亮点吗?另一个问题是其他地方是否有另一个用于 gradle-tomcat 的插件?

忘了添加,我正在使用tomcatVersion = '6.0.44'和java7

我遇到了同样的问题,并使用 gradle verison 2.3 的 gradle 包装器解决了它。 见 https://docs.gradle.org/current/userguide/gradle_wrapper.html

添加 gradle 包装器

gradle wrapper --gradle-version 2.3

然后运行雄猫

gradlew tomcatRun

最新更新