2016-01-27 77 views
0

我對於tomcat部署使用apply plugin: 'com.bmuschko.tomcat',我們通常使用maven,但是這次我們更改爲gradle,在幾次嘗試使用intellijidea作爲我的IDE後,我無法運行tomcatRun任務,有一個奇怪的錯誤說。Gradle + Tomcat插件+ slf4j

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使奇怪的組合,這裏的任何亮點? 另外一個問題是,如果在其他地方還有其他插件for gradle-tomcat?

忘了補充,我使用tomcatVersion = '6.0.44'和java7

回答

1

我有同樣的問題,並使用gradle這個包裝,與gradle這個verison 2.3解決它。看到https://docs.gradle.org/current/userguide/gradle_wrapper.html

添加gradle這個包裝

gradle wrapper --gradle-version 2.3 

然後用

gradlew tomcatRun 
+0

運行Tomcat其實是我在過去是如何解決的,需要在gradle這個版本降級到2.3這是一個但是我使用了STS,因爲我的一些隊友在他們的計算機上沒有問題,轉而使用舊的gradle版本是一種解決方法,但我認爲你的回答是正確的,謝謝。 – Koitoer