デバッグ目的で Tomcat 7 ですべての JSP をプリコンパイルし、すべての JSP コンパイル エラーのログを取得することに関心があります。私はネット全体を検索しましたが、これを行う方法が見つかりませんでした。
すぐに使用できるオープン ソース ツールを使用してこれを行う方法について提案がある人はいますか?
デバッグ目的で Tomcat 7 ですべての JSP をプリコンパイルし、すべての JSP コンパイル エラーのログを取得することに関心があります。私はネット全体を検索しましたが、これを行う方法が見つかりませんでした。
すぐに使用できるオープン ソース ツールを使用してこれを行う方法について提案がある人はいますか?
このタスクは、 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 ベースのタスク全体で一貫していると思われます。