我正在使用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,结果相同。
似乎正在使用libs正确创建war文件,但使用插件和gradle会产生奇怪的组合,这里有什么亮点? 还有一个问题是,是否有其他地方的gradle-tomcat插件?
忘记添加,我正在使用tomcatVersion = '6.0.44'
和java7
答案 0 :(得分:1)
我有同样的问题并使用gradle包装器解决它,使用gradle verison 2.3。见https://docs.gradle.org/current/userguide/gradle_wrapper.html
添加gradle wrapper
gradle wrapper --gradle-version 2.3
然后用
运行tomcatgradlew tomcatRun