3

デバッグ目的で Tomcat 7 ですべての JSP をプリコンパイルし、すべての JSP コンパイル エラーのログを取得することに関心があります。私はネット全体を検索しましたが、これを行う方法が見つかりませんでした。

すぐに使用できるオープン ソース ツールを使用してこれを行う方法について提案がある人はいますか?

4

1 に答える 1

1

このタスクは、 Dev Shedで文書化され、Stack Overflowで参照されている ANT ビルド アプローチを使用して完了することができました。

これを機能させるために必要だったのは、次に示すように、javac タスクに failonerror="false" を追加することでした。

<!-- 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 セッター リフレクションは、他の Java ベースのタスク全体で一貫していると思われます。

于 2013-09-18T22:20:37.267 に答える