【问题标题】:ANT Concatenate file during unzip taskANT 在解压缩任务期间连接文件
【发布时间】:2018-01-12 21:11:44
【问题描述】:

这里是 ANT 初学者。我有一个名为 Neo 的包,在它的 build.xml 中我遇到了问题。在将 Neo jar 解压到这个展开的目录中时,

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

扩展目录中有一个名为“targetFile”的文件 在上述解压缩步骤中,该文件会被路径下 Neo.jar 中存在的另一个名为“targetFile”的文件覆盖

src/services/targetFile

我需要确保 Neo.jar 中的这个“targetFile”不会覆盖扩展目录中已经存在的“targetFile”,而是将自身连接到已经存在的“targetFile”。到目前为止,这是我的方法:

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

一旦我匹配了模式集中的文件,当我事先不知道扩展目录中存在“targetFile”的路径时,从语法上讲,我将如何使用 ANT 的 Concat 任务?实际上,再看一遍这让我觉得由于模式集,现在只有“targetFile”会被解压缩,但本质上我需要解压缩所有内容,只需对我正在解压缩的文件之一做一些特殊的事情。

【问题讨论】:

  • 这些依赖jar文件是如何解压的?这是您在 build.xml 中明确执行的操作吗?
  • 是的,我正在尝试使用解压缩/连接执行的当前 ANT 任务取决于解压缩这些依赖 jar 文件的目标。
  • 更新了我的问题,使其更加清晰。

标签: java ant


【解决方案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>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-19
    • 2017-01-18
    • 1970-01-01
    • 2014-10-01
    相关资源
    最近更新 更多