如何在Tomcat 7中使用Jetty Jspc Maven插件

时间:2016-09-16 07:32:09

标签: jetty

我根据https://www.eclipse.org/jetty/documentation/current/jetty-jspc-maven-plugin.html使用Jetty Jspc Maven插件9.3.11。由于

,已编译的JSP无法运行
  

抛出java.lang.ClassNotFoundException:   org.apache.jasper.runtime.JspSourceImports

JspSourceImports是Tomcat 8引入的接口,因此在Tomcat 7上不可用.Jetty Jspc Maven插件不允许我配置要编译的Tomcat / JSP版本。

我认为插件的特定版本隐式附带。那么,问题是如何为Tomcat 7使用Jetty Jspc Maven插件?

2 个答案:

答案 0 :(得分:1)

如果需要较旧的JSP支持,您可以使用旧的Jetty 8 jspc插件吗?

  

注意:Jetty 8现在是EOL(生命终结),它使用了Glassfish Jasper 2.2.2 JSP引擎(在Jetty 9中已被完全弃用并替换为Apache Jasper 8.5.4)

所以对于Jetty 8,你将会在:

  • JSP 2.2
  • JSTL 1.2

请参阅:org.mortbay.jetty:jetty-jspc-maven-plugin:8.1.16.v20140903

答案 1 :(得分:0)

解决方案似乎与我上面的评论完全一样:

<plugin>
  <!-- https://www.eclipse.org/jetty/documentation/9.3.x/jetty-jspc-maven-plugin.html -->
  <groupId>org.eclipse.jetty</groupId>
  <artifactId>jetty-jspc-maven-plugin</artifactId>
  <version>${jetty-jspc-plugin.version}</version>
  <dependencies>
    <dependency>
      <groupId>org.apache.tomcat</groupId>
      <artifactId>tomcat-jasper</artifactId>
      <version>${tomcat.version}</version>
    </dependency>
  </dependencies>
  <executions>
    <execution>
      <id>jspc</id>
      <goals>
        <goal>jspc</goal>
      </goals>
    </execution>
  </executions>
</plugin>

${tomcat.version}是7.x分支中的某个版本。没有必要让它与运行时版本完全匹配,只需要与API兼容。