2012-08-22 144 views
1

这是记者从昨天与我的问题跟进的问题:我使用Ant 1.8.2和我能够在耳朵来更新文件,使用我在做的例子 Ant Ear Update Without Full Exploding Ear蚂蚁巢更新

提供上面的链接。

我的耳朵文件中有一个war文件,我希望看看是否有办法进行嵌套更新(例如更新耳朵中的战争中的文件)。

我的另一种选择是提取战争,更新战争,然后用更新的战争更新耳朵。如果有办法进行嵌套更新,我认为这会节省我的时间,因为我的战争文件非常大。

回答

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"/>