如何通过 Maven 编译 JSP,但不会因错误而失败?

How to compile JSPs via Maven, but without failing on errors?

我刚刚开始从事一个包含许多 JSP 的大型项目,其中许多是很久以前创建的,其中一些是生成的。我想使用 org.eclipse.jetty 中的 jetty-jspc-maven-plugin 来编译我们的 JSP,以便在 Tomcat 8.5 中使用。不幸的是,有些 JSP 编译不干净,当出现编译问题时,maven 构建失败并停止。

扩展 org.apache.jasper.JspC 并具有 failOnError 属性 的 JspcMojo class does most of the work. It has an embedded class, JspcMojo.JettyJspCJettyJspC 的文档说,"JettyJspC Add some extra setters to standard JspC class to help configure it for running in maven." 所以,看来我应该能够将 failOnError 属性 设置为 false 并完成。我尝试了以下所有方法,但均未成功。如何将 failOnError 属性 从 Maven 传递给 JSP 编译器?

<jspc.failOnError>false</jspc.failOnError>
<org.apache.jasper.compiler.failOnError>false</org.apache.jasper.compiler.failOnError>
<org.apache.jasper.JspC.failOnError>false</org.apache.jasper.JspC.failOnError>
<maven.compiler.failOnError>false</maven.compiler.failOnError>
<JettyJspC.failOnError>false</JettyJspC.failOnError>
<JspcMojo.JettyJspC.failOnError>false</JspcMojo.JettyJspC.failOnError>
<org.eclipse.jetty.jspc.plugin.JspcMojo.JettyJspC.failOnError>false</org.eclipse.jetty.jspc.plugin.JspcMojo.JettyJspC.failOnError>

顺便说一句,compiling JSPs using ant 有很好的记录。我想用 maven 做同样的事情。

configuration 部分下,您可以使用 jspc 元素的子元素,如下所示:

<plugin>
    <groupId>org.eclipse.jetty</groupId>
    <artifactId>jetty-jspc-maven-plugin</artifactId>
    <version>9.4.7.v20170914</version>
    <executions>
        <execution>
            <id>jspc</id>
            <goals>
                <goal>jspc</goal>
            </goals>
            <configuration>
                <webAppSourceDirectory>${basedir}/target/overlaidjsps</webAppSourceDirectory>
                <webXml>${basedir}/src/main/webapp/WEB-INF/web.xml</webXml>
                <webXmlFragment>${basedir}/target/webfrag.xml</webXmlFragment>
                <!-- The comma separated list of patterns for file extensions to be processed. -->
                <includes>**/*.jsp</includes>
                <jspc><failOnError>false</failOnError></jspc>
            </configuration>
        </execution>
    </executions>
</plugin>