解压缩任务期间的ANT连接文件

时间:2018-01-12 21:11:44

标签: java ant

ANT初学者。我有一个名为Neo的软件包,在build.xml中我遇到了问题。在将Neo jar解压缩到此扩展目录中时,

<unzip src="${output.dir}/Scala2.11/Neo.jar" dest="${standalone.jar.expanded.jars.dir}"/>

扩展目录中有一个名为&#34; targetFile&#34;的文件。 在上述解压缩步骤中被另一个名为&#34; targetFile&#34;的文件覆盖。存在于路径

下的Neo.jar中
src/services/targetFile

我需要确保这个&#34; targetFile&#34;在Neo.jar中并没有覆盖&#34; targetFile&#34;已存在于扩展目录中,而是将其自身连接到已存在的&#34; targetFile&#34;。到目前为止,这是我的方法:

<unzip src="${output.dir}/Scala2.11/Neo.jar" dest="${standalone.jar.expanded.jars.dir}">
  <patternset>
    <include name="src/services/targetFile"/>
  </patternset>
</unzip>

一旦我与模式集中的文件匹配,当我不知道&#34; targetFile&#34;的路径时,语法上如何使用ANT的Concat任务?预先存在于扩展目录中?实际上,再次看这个让我觉得现在只有&#34; targetFile&#34;将由于模式集解压缩,但基本上我需要解压缩所有内容并为我解压缩的文件之一做一些特殊的事情。

1 个答案:

答案 0 :(得分:1)

解压缩每个.jar文件时,您需要排除src / services / targetFile条目,然后从每个存档单独连接该条目:

<unzip src="${output.dir}/Scala2.11/Neo.jar" dest="${standalone.jar.expanded.jars.dir}">
    <patternset excludes="src/services/targetFile"/>
</unzip>
<unzip src="path/to/lib01.jar" dest="${standalone.jar.expanded.jars.dir}">
    <patternset excludes="src/services/targetFile"/>
</unzip>
<unzip src="path/to/lib02.jar" dest="${standalone.jar.expanded.jars.dir}">
    <patternset excludes="src/services/targetFile"/>
</unzip>
<unzip src="path/to/lib03.jar" dest="${standalone.jar.expanded.jars.dir}">
    <patternset excludes="src/services/targetFile"/>
</unzip>
<unzip src="path/to/lib04.jar" dest="${standalone.jar.expanded.jars.dir}">
    <patternset excludes="src/services/targetFile"/>
</unzip>

<concat destfile="${standalone.jar.expanded.jars.dir}/src/services/targetFile">
    <zipentry zipfile="${output.dir}/Scala2.11/Neo.jar" name="src/services/targetFile"/>
    <zipentry zipfile="path/to/lib01.jar" name="src/services/targetFile"/>
    <zipentry zipfile="path/to/lib02.jar" name="src/services/targetFile"/>
    <zipentry zipfile="path/to/lib03.jar" name="src/services/targetFile"/>
    <zipentry zipfile="path/to/lib04.jar" name="src/services/targetFile"/>
</concat>