由于java.lang.NoClassDefFoundError:org / slf4j / LoggerFactory,Maven插件构建但无法执行

时间:2012-01-10 02:15:57

标签: java maven maven-plugin slf4j pom.xml

我在我的pom.xml中使用maven-jspc-plugin。

当我尝试执行jsp-compile目标(执行插件)时,我得到:

Caused by: java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory 
at org.apache.juli.logging.Slf4jLog.<init>(Slf4jLog.java:29) 
at org.apache.juli.logging.LogFactory.getLog(LogFactory.java:54)    
at org.apache.juli.logging.LogFactory.getLog(LogFactory.java:35) 
at org.apache.sling.scripting.jsp.jasper.compiler.OriginalTldLocationsCache.<init>(OriginalTldLocationsCache.java:81) 
at org.apache.sling.maven.jspc.JspcMojo.initServletContext(JspcMojo.java:426) 

我已经尝试下载maven-jspc-plugin的(开放)源代码,我可以轻松地“mvn install” - 我没有遇到任何构建问题,但是当我在我的项目中使用该构建时它仍然崩溃,并告诉我它找不到LoggerFactory。

我已经记录了Apache Sling项目的一个问题但是没有取得多大进展。   https://issues.apache.org/jira/browse/SLING-2350 此链接包含一些故障排除信息以及使用maven插件的简单maven项目。下载jspc-test.zip和“mvn install”将导致我提到的错误。

另外,我在org.apache.juli pom.xml上取得了一个高峰,它似乎根本没有列出任何依赖项。

任何有关如何解决的想法都将受到赞赏。

谢谢!

1 个答案:

答案 0 :(得分:2)

插件依赖项在POM的不同部分提供:

<project>
    <dependencies>
         <!-- dependencies defined here don't get included for plugins -->
    ... 
    </dependencies>
    <build>
         <plugins>
              <plugin>
                .... jspc plugin section ....
                 <dependencies>
                      <dependency>  
                      <!-- Try adding slf4j here --->

虽然它确实听起来像POM无效,如果它还没有指定slf4j。