一个简单的问题:我喜欢Ant的这一点:
<fileset dir="${lib}">
<patternset refid="myPattern" />
</fileset>
所以我可以使用它,例如从$ {lib}中复制一些与myPattern匹配的.jar文件。
如果我真正想要的是查看$ {lib}中的每个.jar并选择只匹配myPattern的.class文件,该怎么办?
答案 0 :(得分:10)
unjar
任务在开箱即用中完成了您想要的任务。使用fileset
指定要从中提取的jar文件,使用patternset
指定要提取的文件。
<unjar dest="${dest.dir}">
<patternset refid="myPattern" />
<fileset dir="${lib}" includes="*.jar" />
</unjar>
答案 1 :(得分:1)
您可以使用archives
资源集合从多个档案中提取多个文件:
<copy todir="somedir">
<restrict>
<!-- This is just an example, you can use any restriction -->
<name name="somePattern"/>
<archives>
<zips>
<fileset dir="${lib}" includes="**/*.jar" />
</zips>
</archives>
</restrict>
</copy>
答案 2 :(得分:0)
我很确定你需要解开jar,然后复制类文件。
答案 3 :(得分:0)
这应该适用于antcontrib的For task
<for param="file">
<path>
<fileset dir="${lib}" includes="*.jar"/>
</path>
<sequential>
<unjar src="@{file}" dest="${dest}">
<patternset refid="myPattern>
</unjar>
</sequential>
</for>