我正在使用ant 1.7,出现以下错误:

build.xml:55:文件集不支持“erroronmissingdir”属性

1.7中erroronmissingdir(在1.8中)的替代属性是什么

最佳答案

自Ant 1.7.1起,fileset erroronmissingdir属性可用。您必须使用1.7的早期版本。

该属性用于告诉构建静默忽略执行时不存在基本目录的文件集:

<copy todir="tmp">
  <fileset dir="foo" erroronmissingdir="false">
    <include name="**/*"/>
  </fileset>
</copy>

如果您不指定erroronmissingdir="false"(或者因为您的Ant版本不支持而不能指定),那么如果dir foo不存在,则默认结果是构建失败。

如果无论dir是否存在都需要构建成功,并且不能使用erroronmissingdir属性,则可以使用一些选项。

例如,您可以将文件集的基本目录指定为目标目录的已知父目录,如下所示:
  <copy todir="tmp">
    <fileset dir=".">
      <include name="foo/**/*"/>
    </fileset>
  </copy>

(请注意,在这种情况下,副本现在将在todircopy中创建dir foo。您可以使用glob mapper删除它。)

另一种选择是在条件等保护的条件下,在目标中执行有条件可用的文件集操作。
<available property="foo.available" file="foo"/>

<target name="test" if="foo.available">
  <copy todir="tmp">
    <fileset dir="foo">
      <include name="**/*"/>
    </fileset>
  </copy>
</target>

带有ant -v的输出将显示:
[available] Unable to find foo to set property foo.available
test: Skipped because property 'foo.available' not set.
BUILD SUCCESSFUL Total time: 0 seconds

关于ant - 文件集不支持 "erroronmissingdir"属性,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6491796/

10-09 01:56