如何仅在Apache ant中存在相应文件的情况下复制文件



例如:

src.dir
---a.py
---a.reqs.py
---b.py
---b.reqs.py
---c.py
dest.dir

在这种情况下,只有a.pyb.py应该被复制到dest.dir。我试过了-

<copy todir="${dest.dir}">
<fileset dir="${src.dir}" includes="*.reqs.py"/>    
<mapper type="glob" from = "*.reqs.py" to = "*.py"></mapper>
</copy>

然而,这似乎是复制reqs文件并重命名它们,这不是必需的。

映射器用于重命名,而不是定义依赖项,但您可以在一个任务中同时执行这两项任务。

这对我有效:

<copy todir="${dest.dir}">
<fileset dir="${src.dir}" includes="*.py">
<present targetdir="${src.dir}">
<mapper type="glob" from = "*.py" to = "*.reqs.py"></mapper>
</present>
</fileset>
</copy>

这与您的尝试类似,但使用<present>选择器使用嵌套映射器声明"req"文件上的依赖关系。

它说"如果src.dir中存在具有相同名称的*.req.py文件,则只复制*.py文件".

最新更新