ant:jar和zipfileset - 将文件从一个JAR复制到另一个JAR

bgu*_*uiz 3 java ant zip jar build

我目前正在这样做:

<jar update="yes"
     jarfile="${pwd}/dist/${release}_installer.jar">
   <zipfileset src="${pwd}/dist/app.jar" includes="com/izforge/izpack/panels/**"/>
   <zipfileset src="${pwd}/dist/app.jar" includes="com/xyz/img/logo.png"/>
</jar>
Run Code Online (Sandbox Code Playgroud)

我的现有安装程序JAR已更新,以根据需要包含从应用程序JAR中提取的文件.

到现在为止还挺好.

但是,我想修改行为,使图像文件的路径不同于从中复制的路径:

目前:

com/izforge/izpack/panels/MyIzPanel.class
com/xyz/img/logo.png
Run Code Online (Sandbox Code Playgroud)

我想要的是:

com/izforge/izpack/panels/MyIzPanel.class
blah/img/logo.png
Run Code Online (Sandbox Code Playgroud)

所以我需要复制文件,但使用<zipfileset><jar>以这种方式我可以修改目录结构.

有没有办法做到这一点,除了解压缩整个内容复制文件,然后再次拉回来?


编辑:

链接到之前的相关问题:ant任务从jar中删除文件

Gro*_*uez 5

您可以使用以下fullpath属性:

<zipfileset src="${pwd}/dist/app.jar"
    includes="com/xyz/img/logo.png" fullpath="blah/img/logo.img"/>
Run Code Online (Sandbox Code Playgroud)

如果您需要复制多个文件,可能需要查看该prefix属性,例如:

<zipfileset src="${pwd}/dist/app.jar"
    includes="**/*.png" prefix="blah/img"/>
Run Code Online (Sandbox Code Playgroud)