【问题标题】:Maven plugin builds but can't execute due to java.lang.NoClassDefFoundError: org/slf4j/LoggerFactoryMaven 插件构建但由于 java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory 而无法执行
【发布时间】:2012-02-06 12:57:30
【问题描述】:

我在 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”——我没有遇到任何构建问题,但是当我在我的项目中使用该构建时pom 它仍然崩溃并告诉我它找不到 LoggerFactory。

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

另外,我在 org.apache.juli pom.xml 上达到了顶峰,它似乎根本没有列出任何依赖项。

任何关于如何解决的想法将不胜感激。

谢谢!

【问题讨论】:

  • 您是否尝试在您的 POM 中添加 SLF4J api 依赖项?
  • 是的 - 我尝试了 org.slf4j.api(多个版本)、org.slf4j.simple 以及其他一些 org.slf4j.slf4jlog13 和其他一些(LoggerFactory 在 org.slf4j .api 所以我认为这就是我所需要的)。我还尝试在本地构建时在 maven-jspc-plugin POM 中添加 slf4j api depdency。

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


【解决方案1】:

插件依赖项在 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。

【讨论】:

猜你喜欢
  • 2016-04-20
  • 2017-09-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-06-08
  • 2016-09-17
相关资源
最近更新 更多