Java ANT解压每个罐子,除了一个
我有一个ANT目标,它用一个“for”任务解压每个jar,但我想排除一个名为Neo.jar的特定jar。这是我到目前为止所拥有的,但它正在解压它可以使用的每一个罐子Java ANT解压每个罐子,除了一个,java,jar,ant,Java,Jar,Ant,我有一个ANT目标,它用一个“for”任务解压每个jar,但我想排除一个名为Neo.jar的特定jar。这是我到目前为止所拥有的,但它正在解压它可以使用的每一个罐子 <target name="unzipjars"> <for param="jar"> <sequential> <unzip dest="${expanded.dirs}" src="@{jar}"> <exclude name
<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的“exclude name”似乎不起作用,因为我相信它不认为它是一个目录,因为它是一个jar您可以使用if任务()过滤掉Neo.jar文件。比如说
<for param="jar">
<sequential>
<if>
<not><equals arg1="@{jar}" arg2="Neo.jar" /></not>
<then><!-- unzip the jar --></then>
</if>
</sequential>
</for>
您可以使用if任务()过滤掉Neo.jar文件。比如说
<for param="jar">
<sequential>
<if>
<not><equals arg1="@{jar}" arg2="Neo.jar" /></not>
<then><!-- unzip the jar --></then>
</if>
</sequential>
</for>
正如您所见,这很简单
您只需将标记patternset
添加到配置中(顺便说一下,您不需要迭代…)。像这样:
<target name="unzipjars">
<unzip dest="${expanded.dirs}">
<patternset>
<exclude name="**/Neo.jar"/>
</patternset>
<fileset dir="${jar}">
<include name="**/*.*"/>
</fileset>
</unzip>
</target>
正如您所见,这很简单
您只需将标记patternset
添加到配置中(顺便说一下,您不需要迭代…)。像这样:
<target name="unzipjars">
<unzip dest="${expanded.dirs}">
<patternset>
<exclude name="**/Neo.jar"/>
</patternset>
<fileset dir="${jar}">
<include name="**/*.*"/>
</fileset>
</unzip>
</target>
error,“equals不支持嵌套的“then”元素。搞乱了我的问题,将我的问题编辑为使用“@”而不是“$”表示jar,这可能会改变什么?error,“equals不支持嵌套的“then”元素。搞乱了我的问题,将我的问题编辑为使用“@”而不是“$”表示jar,也许这改变了什么?投票赞成避免ant contrib并在一个unzip
任务中完成所有操作。投票赞成避免ant contrib并在一个unzip
任务中完成所有操作。