2

私はAntに比較的慣れていないので、WebアプリケーションをWARアップする最も簡単な方法を見つけようとしています。

次の「展開されたWAR」ディレクトリ構造を作成するビルドターゲットがすでにあります。

MyApp/
    src/
        ...
    gen/    <-- this gets created as a part of every build
        war/
            stylesheets/
                myapp.css
            views/
                index.jsp
                cool.jsp
                ...
            WEB-INF/
                web.xml
                lib/
                    (All of my dependencies)
                classes/
                    META-INF/
                        jdoconfig.xml
                    com/
                        myapp/
                            (All compiled binaries)

したがって、(またはその他を使用して)WARファイルを作成する準備ができた時点で<war/><zip/>すでにWARの展開バージョンを使用する準備ができています。

私がこのタスクで抱えている問題は、それ以外の<war/>ディレクトリをサポートしていないように見えることです。war/WEB-INF/libWEB-INF/classes

<war destfile="myapp.war" webxml="gen/war/WEB-INF/web.xml">
    <lib dir="gen/war/WEB-INF/lib" />
    <classes dir="gen/war/WEB-INF/classes" />
</war>

stylesheetsviews、または私が望むかもしれない他のものはどうですか?ファイルまたはディレクトリを追加したい場合はどうなりますWEB-INF/か?と同じレベルで戦争に何かを追加したい場合はどうなりWEB-INF/ますか?タスクは<war/>柔軟性が高すぎるようです。

いずれにせよ(タスク柔軟であり、「取得」していないと確信しているため)、myapp.war以前のビルドターゲットがで作成した正確なディレクトリ構造でを作成する最も簡単な方法が必要gen/warです。前もって感謝します。

4

2 に答える 2

3

warタグ内でファイルセットを使用できます

ビルドファイルの例

<war destfile="${war.dest.file.name.without.extension}.war"      manifest="${build.dir}/MANIFEST.MF" webxml="${webcontent.dir}/WEB-INF/web.xml">
        <fileset dir="${webcontent.dir}" casesensitive="no">
            <exclude name="WEB-INF/lib/**"/>
            <exclude name="WEB-INF/classes/**"/>
            <exclude name="WEB-INF/web.xml"/>
            <exclude name="META-INF/context.xml"/>
         </fileset>
         <lib dir="${app.lib.dir}"/>
         <classes dir="${classes.dir}"/>
    </war>
于 2013-01-30T21:25:17.053 に答える
1

それを理解した、これははるかに簡単です。<war/>独自の爆発戦争ディレクトリがすでにある場合、タスクはあまりにも多くの制約を課します。ただそれを圧縮してください!

<zip destfile="myapp.war"
    basedir="gen/war" update="true" />
于 2013-01-30T23:42:10.613 に答える