我有一个文件夹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文件。
两个片段之间的区别是什么?
文件夹结构:
答案 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
<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>