编译所有JSP而不是停止错误

时间:2013-09-06 22:57:49

标签: jsp tomcat ant compilation

我感兴趣的是在Tomcat 7中预编译所有JSP以进行调试并获取所有JSP编译错误的日志。我在网上搜索过,但没有找到任何办法。

是否有人建议如何使用开箱即用的开源工具执行此操作?

1 个答案:

答案 0 :(得分:1)

我能够使用ANT构建方法完成此任务,如Dev Shed中所述,并引用here on 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并查看可用的公共setter,并通过删除“get”并将其作为小写(为了保持一致)来给它们。

我怀疑这个ANT setter反射在其他基于Java的任务中是一致的。