从jar里面的jar中删除/添加文件

时间:2014-06-12 19:01:48

标签: ant jar add delete-file

基本上我想删除文件并将文件添加到恰好位于另一个jar文件中的jar文件中。如果没有完全解压缩jar文件并重新打包它们,这可能吗?

如果有一个蚂蚁脚本,会很棒。

1 个答案:

答案 0 :(得分:0)

Is this possible without completely extracting the jar files and repacking them again?

- for addition / updation : Yes
- for deletion : NO. 
  however, instead of using the manual option, there's an alternative:
     <zip>
       <zipfileset/>
     </zip> 
     <move/> 

parent.jar 
 |__child.jar
 |   |
 |   |__some files..
 |
 |__some files..

child.jar

上执行添加/删除

对于child.jar上的任何操作,必须从parent.jar中提取,无一例外:

<unjar src="..\abc\parent.jar" dest="..\abc\temp">
    <patternset includes="child.jar"/>
</unjar>

child.jar上的添加/删除:

- &GT;从 basedir - temp2 添加/更新 ..\temp\child.jar中的文件。

<zip destfile="..\abc\temp\child.jar" basedir="..\xyz\temp2" update="true"/>

update="true"添加新文件并覆盖 destfile 中已存在的文件。

- &GT;来自..abc\temp\child.jar删除文件:

<zip destfile="..\abc\temp\temp_child.jar">
    <zipfileset src="..\abc\temp\child.jar" excludes="files_to_be_deleted" />
</zip>                  
<move file="..\abc\temp\temp_child.jar" toFile="..\abc\temp\child.jar"/>    

修改后的child.jar可以轻松更新为parent.jar :(与在child.jar上添加/更新文件相同)

<zip destfile="..\abc\parent.jar" basedir="..\abc\temp" update="true"/>