我有兴趣在 Tomcat 7 中预编译我的所有 JSP 以进行调试并获取所有 JSP 编译错误的日志。我已经搜索了整个网络,并没有找到任何方法来做到这一点。
是否有人对如何使用开箱即用的开源工具执行此操作有建议?
我有兴趣在 Tomcat 7 中预编译我的所有 JSP 以进行调试并获取所有 JSP 编译错误的日志。我已经搜索了整个网络,并没有找到任何方法来做到这一点。
是否有人对如何使用开箱即用的开源工具执行此操作有建议?
我能够使用 ANT 构建方法完成此任务,如Dev Shed上的文档和Stack Overflow 上的引用。
完成这项工作所需的是将 failonerror="false" 添加到 javac 任务中,如下所示:
<!-- start snip from build.xml from DevShed -->
<target name="generate-jsp-java-src">
<mkdir dir="${webapp.dir}/WEB-INF/jspc-src/${jspc.dir.prefix}"/>
<taskdef classname="org.apache.jasper.JspC" name="jasper2">
<classpath>
<path refid="jspc.classpath"/>
</classpath>
</taskdef>
<touch file="${webapp.dir}/WEB-INF/jspc-web.xml"/>
<jasper2 uriroot="${webapp.dir}"
package="${jspc.pkg.prefix}"
webXmlFragment="${webapp.dir}/WEB-INF/jspc-web.xml"
outputDir="${webapp.dir}/WEB-INF/jspc-src/${jspc.dir.prefix}"
verbose="0"
failonerror="false"
listerrors="true"/>
</target>
<!-- end snip from build.xml from DevShed -->
我还发现设置 verbose="0" 和 listerrors="true" 在仅显示编译/构建错误和减少不需要的日志记录方面做得更好。
我从这个练习中学到的另一个方便的注意事项是,ANT 会自动尝试根据任务中的 javac 属性反映 setter 方法。如果 Ant 找到匹配的签名,它将执行这个 setter 方法。例如 failonerror 将反映到 ANT 的 setFailOnError(boolean)。因此,如果您想查看可用的其他参数,您可以简单地打开 JspC.java 并查看可用的公共设置器,并通过删除“get”并将它们设置为小写(为了保持一致性)来尝试一下。
我怀疑这个 ANT setter 反射在其他基于 Java 的任务中是一致的。