ANT 根据模式选择一个文件,移动到 dest 并重命名

标签 ant

我正在尝试复制从以 _${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/

相关文章:

java - Ant 分词器 : Selecting an individual Token

ant - Ant build.xml 中带有@ 符号的变量是什么意思?

ant - 有没有办法在本地没有 WAS 或 RAD 的情况下使用普通 Ant 远程部署到 Websphere 6.1?

java - Ant 与 jar 目标

java - 继承javadoc,不为继承源生成文档

Ant:解压多个文件

eclipse - .ant-targets-build.xml 使 eclipse 项目陷入错误

java - Ant 通过 Jenkins : "BUILD SUCCESSFUL" in Console Output while build is still running

eclipse - 如何在 Eclipse 中从 ant view 执行 "sudo ant"

perl - 从 Ant 执行 Perl 脚本的最跨平台的方式是什么?