嵌套路径和文件集之间有什么区别?

时间:2011-07-01 06:49:29

标签: ant path fileset

我一直在谷歌上搜索“文件集和路径之间的差异”一段时间,但没有发现任何有用的东西。 例如,以下内容之间有什么区别(例如,有一个 someDir 目录,其中包含.jar文件且没有子目录):

<path id="somePathId">
    <pathelement path="someDir"/>
</path>

<path id="someId">
  <path refid="somePathId" />
</path>

<path id="someId">
  <fileset dir="someDir">
     <include name="*.*">
  </fileset>
</path>

2 个答案:

答案 0 :(得分:2)

<path><fileset>之间的主要区别在于<fileset>您可以指定是否要包含或排除某些类型的文件(基本上,它是一组文件在路径中......不一定是所有文件),例如:

<path id="someId">
  <fileset dir="someDir">
     <include name="*.java">
     <include name="*.properties">
  </fileset>
</path>

答案 1 :(得分:2)

它们用于不同的情况。

fileset用于指定一组文件。您可以使用selectorpatternset来仅获取所需的文件。

classpath用于指定类路径引用。 classpath可以使用单个jar(location="..."),;:分隔的jars列表(path="...")或嵌套资源集合(如fileset)。

另外,如果你想调试它们,那就不一样了:

<echo message="Build-path: ${toString:build-path}" />

VS

<property name="debug.classpath" refid="classpath"/>
<echo message="Classpath = ${debug.classpath}"/>

至于你的脚本,

<path id="somePathId">
    <pathelement location="someDir"/>
</path>

我没有对其进行测试,但根据documentation path=预计会有;:个分隔的jar列表。这与你的第二个例子不同。