1

これは、昨日の私の質問に関連するフォローアップの質問です: Ant Ear Update Without Full Exploding Ear

私はAnt 1.8.2を使用しており、上記のリンクで作成した例を使用して、耳のファイルを更新できます。

ear ファイル内に war ファイルがあり、ネストされた更新を行う方法があるかどうかを確認したいと考えています (たとえば、ear にある war 内のファイルを更新します)。

私の他のオプションは、戦争を抽出し、戦争を更新してから、更新された戦争で耳を更新することです。私のwarファイルはかなり大きいので、ネストされた更新を行う方法があれば、時間を節約できると思います。

4

1 に答える 1

0

以下は、誰かが興味を持っている場合に備えて、私の代替アプローチ POC です。「ネストされた」更新が見つからない場合は、これを使用します。

<property name="ear.file1"          value="file1.ear"/>
<property name="war.file1"          value="war1.war"/>
<property name="war.file"           value="war.war"/>
<property name="war.file.backup"    value="warBk.war"/>
<property name="text.file1"         value="1.txt"/>
<property name="text.file2"         value="2.txt"/>
<property name="xml.application1"   value="application.xml"/>

<target name="clean">
    <delete file="${ear.file1}"/>
    <delete file="${war.file}"/>
    <delete file="${war.file.backup}"/>
</target>

<target name="run">

    <!-- Our war file contains 1.txt, allows us add 2.txt and verify updates properly -->
    <copy file="${war.file1}" tofile="${war.file}"/>

    <!-- simple ear that will be updated -->
    <ear earfile="${ear.file1}" appxml="${xml.application1}">
        <fileset dir="." includes="${text.file1}"/>
        <fileset dir="." includes="${war.file}"/>
    </ear>  

    <!-- Backup war, for comparision purposes -->
    <move file="${war.file}" tofile="${war.file.backup}" overwrite="true" />

    <!-- Extact the war we just added -->
    <unzip dest="." src="${ear.file1}" overwrite="true" >
        <patternset>
            <include name="${war.file}" />
        </patternset>
    </unzip>

    <!-- Update the war by adding a file -->
    <war destfile="${war.file}" update="true">
        <fileset dir="." includes="${text.file2}"/>
    </war>

    <!-- Update the ear with our updated war -->
    <ear earfile="${ear.file1}" appxml="${xml.application1}" update="true">
        <fileset dir="." includes="${war.file}"/>
    </ear>  
</target>

<target name="main" depends="clean,run"/>
于 2012-08-22T16:41:09.500 に答える