Ant常用文件操作——复制、移动、删除、重命名

Ant 提供了丰富的文件操作任务,是构建脚本中最常用的功能之一。

复制文件/目录

<!-- 复制单个文件 -->
<copy file="src/config.xml" tofile="dist/config.xml" />

<!-- 复制文件到目录 -->
<copy file="src/config.xml" todir="dist/" />

<!-- 复制整个目录 -->
<copy todir="dist/">
    <fileset dir="src/" />
</copy>

<!-- 复制时过滤文件类型 -->
<copy todir="dist/">
    <fileset dir="src/">
        <include name="**/*.xml" />
        <exclude name="**/*.tmp" />
    </fileset>
</copy>

<!-- 复制并覆盖只读文件 -->
<copy todir="dist/" overwrite="true">
    <fileset dir="src/" />
</copy>

移动文件/目录

<move file="temp/output.jar" tofile="release/app.jar" />
<move todir="archive/">
    <fileset dir="temp/">
        <include name="*.log" />
    </fileset>
</move>

删除文件/目录

<!-- 删除单个文件 -->
<delete file="temp/output.txt" />

<!-- 删除目录及其所有内容 -->
<delete dir="build/" />

<!-- 按模式删除 -->
<delete>
    <fileset dir="dist/">
        <include name="**/*.class" />
        <include name="**/*.tmp" />
    </fileset>
</delete>

<!-- 安静模式:文件不存在也不报错 -->
<delete file="temp/output.txt" quiet="true" />

重命名

Ant 没有单独的 rename 任务,用 <move> 实现:

<move file="app-old.jar" tofile="app-new.jar" />

创建目录

<mkdir dir="dist/lib/" />

父目录不存在时自动创建,所以不需要逐级 mkdir

替换文件中的文本

<replace file="config.properties" token="@VERSION@" value="${app.version}" />

批量替换目录下所有文件:

<replace dir="dist/" token="@BUILD_TIME@" value="${build.time}">
    <include name="**/*.html" />
    <include name="**/*.js" />
</replace>

打包(Zip/Tar)

<zip destfile="release/app-${app.version}.zip" basedir="dist/" />

<!-- 排除某些文件 -->
<zip destfile="release/app.zip">
    <fileset dir="dist/">
        <exclude name="**/*.log" />
    </fileset>
</zip>

每天前进一小步,就是一个新的高度!

作者:唐明

出处:/post/ant-file-operations

版权:本站使用"CC BY 4.0"创作共享协议,转载请在文章明显位置注明作者及出处。

关注微信公众号

DevOps持续交付公众号ID:devopscd