我在我的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上取得了一个高峰,它似乎根本没有列出任何依赖项。
任何有关如何解决的想法都将受到赞赏。
谢谢!
答案 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。