Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java ANT在解压任务期间连接文件_Java_Ant - Fatal编程技术网

Java ANT在解压任务期间连接文件

Java ANT在解压任务期间连接文件,java,ant,Java,Ant,这里是初学者。我有一个名为Neo的包,在它的build.xml中我遇到了一个问题。将Neo jar解压到这个扩展目录中时 <unzip src="${output.dir}/Scala2.11/Neo.jar" dest="${standalone.jar.expanded.jars.dir}"/> 我需要确保Neo.jar中的这个“targetFile”不会覆盖扩展目录中已经存在的“targetFile”,而是将自身连接到已经存在的“targetFile”。这是我目前的做法: &

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

<unzip src="${output.dir}/Scala2.11/Neo.jar" dest="${standalone.jar.expanded.jars.dir}"/>
我需要确保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>


一旦匹配了patternset中的文件,在语法上,当我事先不知道扩展目录中存在“targetFile”的路径时,如何使用ANT的Concat任务?实际上,再看一遍,我觉得现在只有“targetFile”会因为patternset而被解压,但本质上我需要解压所有内容,只需对我解压的其中一个文件执行一些特殊操作。

解压每个.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>


这些依赖项jar文件是如何解压缩的?这是您在build.xml中显式执行的操作吗?是的,我正在尝试使用解压/连接来执行的当前ANT任务取决于解压这些依赖项jar文件的目标。更新了我的问题,使其更加清晰。
<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>