有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

JavaAnt解压除一个之外的每个jar

我有一个ANT目标,它用一个“for”任务解压每个jar,但我想排除一个名为Neo的特定jar。罐子这是我到目前为止所拥有的,但它正在解压它可以使用的每一个罐子

 <target name="unzipjars">
   <for param="jar">
     <sequential>
       <unzip dest="${expanded.dirs}" src="@{jar}">
         <exclude name="Neo.jar/**"/>
       </unzip>
     </sequential>
   </for>
 </target>   

我想尝试从“for param=“jar”中排除某些内容,但我认为不存在类似的内容。Neo的“排除名称”。jar似乎不起作用,因为我相信它不认为它是一个目录,因为它是一个jar


共 (2) 个答案

  1. # 1 楼答案

    正如你所见,这很简单

    您只需要将标签patternset添加到配置中(顺便说一下,您不需要迭代…)。像这样:

    <target name="unzipjars">
        <unzip dest="${expanded.dirs}">
            <patternset>
                <exclude name="**/Neo.jar"/>
            </patternset>
            <fileset dir="${jar}">
                <include name="**/*.*"/>
            </fileset>
        </unzip>
    </target>
    
  2. # 2 楼答案

    可以使用if任务(http://ant-contrib.sourceforge.net/tasks/tasks/if.html)过滤掉Neo。jar文件。比如

    <for param="jar">
      <sequential>
        <if>
          <not><equals arg1="@{jar}" arg2="Neo.jar" /></not>
          <then><!  unzip the jar  ></then>
        </if>
      </sequential>
    </for>