Ant文件集不包含任何类

时间:2014-08-01 08:41:44

标签: ant

我有一个文件夹sources,其下有一个子文件夹be。下一个文件集应该递归地选择be文件夹下的所有* .cls文件! (以及be文件夹的子文件夹中的.cls文件):

<fileset dir="${basedir}/sources">
    <include name="be/**/*.cls" />
</fileset>

显然ant没有选择单个文件...

如果我将其更改为

<fileset dir="${basedir}/sources/be">
    <include name="**/*.cls" />
</fileset>

Ant选择所有.cls文件。

两个片段之间的区别是什么?

文件夹结构:

      • DIRA
        • DIRB
          • .cls文件
        • DIRC
          • .cls文件

1 个答案:

答案 0 :(得分:1)

他们都以不同的方式复制文件。

注意&#34; be&#34;目录根目录包含在第一个副本中:

├── build.xml
├── sources
│   └── be
│       └── dirA
│           ├── dirB
│           │   ├── file1.cls
│           │   └── file2.cls
│           └── dirC
│               └── file3.cls
└── target
    ├── copy1
    │   └── be
    │       └── dirA
    │           ├── dirB
    │           │   ├── file1.cls
    │           │   └── file2.cls
    │           └── dirC
    │               └── file3.cls
    └── copy2
        └── dirA
            ├── dirB
            │   ├── file1.cls
            │   └── file2.cls
            └── dirC
                └── file3.cls

的build.xml

<project name="demo" default="copy">

  <property name="src.dir"   location="sources"/>
  <property name="build.dir" location="target"/>

  <target name="copy" depends="copy1,copy2">
  </target>

  <target name="copy1">
    <copy todir="${build.dir}/copy1">
      <fileset dir="${src.dir}">
        <include name="be/**/*.cls" />
      </fileset>
    </copy>
  </target>

  <target name="copy2">
    <copy todir="${build.dir}/copy2">
      <fileset dir="${src.dir}/be">
        <include name="**/*.cls" />
      </fileset>
    </copy>
  </target>

  <target name="clean">
    <delete dir="${build.dir}"/>
  </target>

</project>