一个简单的问题:我喜欢这一点蚂蚁的外观:如何从.jar文件中提取.class文件?
<fileset dir="${lib}">
<patternset refid="myPattern" />
</fileset>
所以,我可以用这个例如从$ {lib}复制匹配myPattern的几个.jar文件。
如果我真的想要查看$ {lib}中的每个.jar并只选择匹配myPattern的.class文件,该怎么办?
一个简单的问题:我喜欢这一点蚂蚁的外观:如何从.jar文件中提取.class文件?
<fileset dir="${lib}">
<patternset refid="myPattern" />
</fileset>
所以,我可以用这个例如从$ {lib}复制匹配myPattern的几个.jar文件。
如果我真的想要查看$ {lib}中的每个.jar并只选择匹配myPattern的.class文件,该怎么办?
的unjar
任务工作时几乎你想在这里开箱即用的东西。使用fileset
指定要从中提取的jar文件,使用patternset
指定要提取的文件。
<unjar dest="${dest.dir}">
<patternset refid="myPattern" />
<fileset dir="${lib}" includes="*.jar" />
</unjar>
我敢肯定,你需要打开罐子,然后做类文件的副本。
这应该与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>
可以使用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>