Java 蚂蚁耳朵更新,无需完全爆炸耳朵

Java 蚂蚁耳朵更新,无需完全爆炸耳朵,java,ant,ear,Java,Ant,Ear,我使用的是Ant1.8.2,我有一个很大的Ear文件 根据安装过程中用户的选择,需要对ear进行轻微更改 在安装过程结束时,我运行一个ant脚本,它根据用户的选择更新ear。如果用户拥有相关的许可证,这些文件只能包含在ear中。。。因此,更新是必要的 目前,我正在爆炸整个耳朵,添加必要的文件,然后更新耳朵 我希望找到一种方法,可以删除和/或添加文件,而不必经历整个解压缩/更新/压缩过程。有一个update属性,您可以将其设置为true 这样,文件将被添加到现有的zipfile中,而不是创建新的z

我使用的是Ant1.8.2,我有一个很大的Ear文件

根据安装过程中用户的选择,需要对ear进行轻微更改

在安装过程结束时,我运行一个ant脚本,它根据用户的选择更新ear。如果用户拥有相关的许可证,这些文件只能包含在ear中。。。因此,更新是必要的

目前,我正在爆炸整个耳朵,添加必要的文件,然后更新耳朵

我希望找到一种方法,可以删除和/或添加文件,而不必经历整个解压缩/更新/压缩过程。

有一个
update
属性,您可以将其设置为true


这样,文件将被添加到现有的zipfile中,而不是创建新的zipfile。

@oers感谢您的建议,下面是我用来将文件添加到ear并替换application.xml文件的POC

<property name="ear.file1"  value="file1.ear"/>
<property name="ear.file2"  value="file2.ear"/>
<property name="text.file1" value="1.txt"/>
<property name="text.file2" value="2.txt"/>
<property name="xml.application1"   value="application.xml"/>
<property name="xml.application2"   value="application2.xml"/>

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

<target name="run">
    <!-- simple ear -->
    <ear earfile="${ear.file1}" appxml="${xml.application1}">
        <fileset dir="." includes="${text.file1}"/>
    </ear>  

    <!-- simple ear that will be updated -->
    <ear earfile="${ear.file2}" appxml="${xml.application1}">
        <fileset dir="." includes="${text.file1}"/>
    </ear>  
    <!-- ear update, both application.xml file and add another file. -->
    <ear earfile="${ear.file2}" appxml="${xml.application2}" update="true">
        <fileset dir="." includes="${text.file2}"/>
    </ear>  

</target>

<target name="main" depends="clean,run"/>



您运行的应用程序服务器和版本是什么?另外,您当前是否正在开发或部署时分解EAR、添加文件并重新压缩?部署时间,因为直到用户在安装过程中选择他们的选项,我们才知道配置。更新用于添加文件,但application.xml没有更新。。。其中包含与我添加的文件相关的引用。有没有关于如何以类似方式更新的想法?与此同时,我正在谷歌上搜索。