我正在尝试复制从以 _${env}.xml 结尾的根文件夹开始的所有目录下的文件,如果找到,则从文件名中删除 _${env} 或复制目录中存在的 xml 文件.我无法让它工作,请帮忙。(可能我需要一个移动和映射器来重命名,我不知何故无法将它们编织在一起。)
<target name="main">
<copy todir="qa-wprelease">
<fileset dir="bin-debug" includes="**/*.xml">
<or>
<filename name="*_${env}.xml"/>
<filename name="*.xml" />
</or>
</fileset>
</copy>
</target>
最佳答案
查看 <copy>
任务手册 -- <copy>
可以将 <mapper>
作为嵌套元素,它可以在使用模式复制期间更改文件名。 <mapper>
有很多类型,其中一些你甚至可以使用 javascript 来改变你的文件名。
所以......也许你可以这样做(没有测试所以不确定它是否有效):
<copy todir="qa-wprelease" includeemptydirs="false">
<fileset dir="bin-debug" includes="**/*.xml" />
<globmapper from="*_${env}.xml" to="*.xml"/>
</copy>
关于ANT 根据模式选择一个文件,移动到 dest 并重命名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11404016/