我在 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 的不同部分提供:
<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,则它是无效的。
关于java - Maven 插件构建但无法执行,因为 java.lang.NoClassDefFoundError : org/slf4j/LoggerFactory,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8797773/