0

我正在尝试实现另一种 Ant 类型,它的工作方式类似于 zipgroupfileset,但接受类似类路径的字符串作为输入。

我的问题是:即使在下载 apache ant 的源代码时,我也找不到任何关于它的代码或特定于实现的信息,没有 typedef 也没有扩展类。zipgroupfileset 甚至似乎没有正确记录。关于此类型的主要文档似乎是Zip 任务文档中的这个非常短的段落:

zipgroup文件集

zipgroupfileset 允许将多个 zip 文件合并到存档中。在此文件集中找到的每个文件都以与添加 zipfileset src 文件相同的方式添加到存档中。

zipgroupfileset 是一个文件集,支持它的所有属性和嵌套元素。

我的错误在哪里?

4

1 回答 1

4

我需要评估一个变量,libs/a.jar;libs/b.jar;bin/c.jar并使用该<jar>任务将其所有内容包含到一个新 jar 中

您可以使用从 Ant 1.8 开始提供的<archives>资源集合类型来执行此操作

<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 也没有扩展类。

没有具体的类代表a zipgroupfileset,逻辑嵌入在zip任务实现中。该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)任务时,依次检查每个“组”文件集,并为该组包含的每个 zip/jar 文件ZipFileSet生成一个新文件以从该文件中读取,并将生成的内容ZipFileSet添加到目标档案。

于 2013-07-15T12:22:39.557 回答