我刚刚开始研究一个包含许多JSP的大型项目,其中很多是很久以前创建的,其中一些是生成的。我想使用org.eclipse.jetty中的jetty-jspc-maven-plugin来编译我们的JSP,以便在Tomcat 8.5中使用。不幸的是,有些JSP没有干净地编译,当出现编译问题时,maven构建失败并停止。
JspcMojo课完成大部分工作。它有一个嵌入式类JspcMojo.JettyJspC,它扩展org.apache.jasper.JspC
并具有failOnError
属性。 JettyJspC
的文档说," JettyJspC为标准JspC类添加一些额外的setter,以帮助配置它在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>
BTW,compiling JSPs using ant已有相当详细的记录。我想用maven做相同的事情。
答案 0 :(得分:0)
在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>