2

jspc antタスクを使用して、JSPファイルをクラスにプリコンパイルします/(次にパッケージをwarに)

現在、Jetty 8に切り替えています。ドキュメントによると、これを行うためのMavenプラグインが存在します。同じことをするアリの仕事はありますか?

4

3 に答える 3

4

Jettyディストリビューションに付属しているJSPライブラリを使用する場合に最適です。

これは、jetty-distribution-8.1.5.v20120716を使用した例です。

<?xml version="1.0" ?>
<project name="AntExample1" default="war">

    <property name="jetty.home" value="${user.home}/code/intalio/distros/jetty-distribution-8.1.5.v20120716" />

    <path id="compile.jspc">
        <fileset dir="${jetty.home}">
            <include name="lib/servlet-api-*.jar" />
            <include name="lib/jsp/*.jar" />
        </fileset>
    </path>

    <path id="compile.classpath">
        <fileset dir="WebContent/WEB-INF/lib">
            <include name="*.jar" />
        </fileset>
        <path refid="compile.jspc" />
    </path>

    <target name="jspc" depends="compile">
        <taskdef classname="org.apache.jasper.JspC" name="jasper2" classpathref="compile.jspc" />
        <jasper2 validateXml="false"
            uriroot="WebContent"
            addWebXmlMappings="true"
            webXmlFragment="WebContent/WEB-INF/generated_web.xml"
            compilerSourceVM="1.6"
            compilerTargetVM="1.6"
            outputDir="build/gen-src"
            verbose="9" />
    </target>

    <target name="init">
        <mkdir dir="build/classes" />
        <mkdir dir="build/gen-src" />
        <mkdir dir="dist" />
        <copy todir="build/gen-src">
            <fileset dir="src" includes="**/*.java" />
        </copy>
    </target>

    <target name="compile" depends="init">
        <javac destdir="build/classes" debug="true" srcdir="build/gen-src">
            <classpath refid="compile.classpath" />
        </javac>
    </target>

    <target name="war" depends="jspc">
        <war destfile="dist/AntExample.war" webxml="WebContent/WEB-INF/web.xml">
            <fileset dir="WebContent" />
        <classes dir="build/classes" />
        </war>
    </target>

    <target name="clean">
        <delete dir="dist" />
        <delete dir="build" />
    </target>

</project>

更新:2013年4月8日

このビルドのサンプルプロジェクトをgithubにプッシュしました。

https://github.com/jetty-project/jetty-example-jspc-ant

于 2012-08-11T00:37:22.610 に答える
0

最初の文から、jspファイルをプリコンパイルするためにすでにantタスクを使用しているようです...したがって、jetty-8を使用しても、そのプロセスをまったく変更する必要はありません。それでも、そのままプリコンパイルするだけです。これまでどおりにwarファイルを作成してから、jetty-8にデプロイします。jspエンジンをサーバークラスローダーに取り込むには、start.iniのオプションにjspを追加する必要があります。

于 2012-08-08T22:11:40.750 に答える