我正在尝试实现一个替代Ant类型,它的工作方式与zipgroupfileset类似,但是接受类似类路径的字符串作为输入。
我的问题是:即使下载apache ant的源代码,我也找不到任何代码或特定于实现的信息,没有typedef和没有扩展类。 zipgroupfileset似乎甚至没有正确记录。关于此类型的主要文档似乎是Zip Task documentation中的这个非常短的段落:
zipgroupfileset
zipgroupfileset允许合并多个zip文件 档案。在此文件集中找到的每个文件都将添加到存档中 与添加zipfileset src文件的方式相同。
zipgroupfileset是一个文件集,支持其所有属性和 嵌套元素。
我的错误在哪里?
答案 0 :(得分:4)
我需要评估像
libs/a.jar;libs/b.jar;bin/c.jar
这样的变量,并使用<jar>
任务将所有内容包含到新jar中
您可以使用自Ant 1.8
以来可用的<archives>
resource collection type来执行此操作
<property name="jars.to.include" value="libs/a.jar;libs/b.jar;bin/c.jar" />
<jar destfile="dest.jar">
<archives>
<zips>
<path path="${jars.to.include}" />
</zips>
</archives>
</jar>
关于zipgroupfileset
本身:
我找不到任何关于它的代码或特定于实现的信息,没有typedef和没有扩展类。
没有特定的类代表zipgroupfileset
,逻辑是embedded in the zip
task implementation。 Zip
任务有一个
public void addZipGroupFileset(FileSet set)
因此XML中的标记<zipgroupfileset>
被视为定义普通FileSet
- 您可以合法地执行
<fileset id="lib.jars" dir="lib" includes="*.jar" />
<jar destfile="dest.jar">
<zipgroupfileset refid="lib.jars" />
</jar>
执行zip(或jar)任务时,将依次检查每个“group”文件集,并为每个zip / jar文件生成该组包含新ZipFileSet
的文件,以便从该文件中读取,并且生成的ZipFileSet
的内容将添加到目标存档。