备份文件夹,并使用ANT始终有7个文件夹

时间:2011-05-11 10:03:48

标签: ant

我对我的蚂蚁脚本有一些要求。

我的ant脚本从版本控制软件检出"mobile"文件夹到"Nightly Build"文件夹,我有一些要求:

  1. 如果在"Nightly Build"文件夹中,有一个文件夹"mobile"文件夹,我想通过重命名"mobile" + timestamp

    <的文件夹备份该旧文件夹/ LI>
  2. "Nightly Build"文件夹应始终仅包含7个此类"mobile"文件夹。这意味着如果有8个"mobile",我将需要删除最早的"mobile"文件夹

  3. 这是否可以在ANT脚本中执行(按顺序执行)以及如何执行此操作?

2 个答案:

答案 0 :(得分:0)

建议 - 这只会删除超过七天的任何内容,而不是保留固定数量的版本。

<property name="builds.dir" value="Nightly Build" />
<property name="build.dir" value="mobile" />

<tstamp>
    <format property="cutoff.7"
            offset="-7"
            unit="day"
            pattern="MM/dd/yyyy hh:mm aa"/>
</tstamp>

<tstamp>
    <format property="suffix"
            pattern="yyyyMMddHHmmss"/>
</tstamp>

<move file="${builds.dir}/${build.dir}"
      tofile="${builds.dir}/${build.dir}.${suffix}"
      failonerror="false" />

<delete>
    <dirset dir="${builds.dir}" id="old.dirs" includes="${build.dir}.*">
        <date datetime="${cutoff.7}" when="before" checkdirs="yes" />
    </dirset>
</delete>

</project>

有关详细信息,请参阅Ant tstamp taskselectors

答案 1 :(得分:0)

Martin Clayton可以为您提出正确答案。

但是,我建议您查看Jenkins进行构建处理。 Jenkins可以处理您提到的所有内容,并以独立于实现的方式执行。例如,如果更改了版本控制系统或更改了构建要求,该怎么办?您将被迫更改build.xml文件以保持同步。

使用Jenkins,您的build.xml文件仅用于构建。 Jenkins可以处理结账,构建,保存构建工件,报告错误以及测试和部署。因此,如果您更改版本控制或构建要求,而不是使用build.xml(并可能破坏它),您只需要更改Jenkins任务中的参数。

下载Jenkins并看看它。它设置简单,易于理解。此外,它包含许多可以扩展它的插件。想要发布Java Docs?想要运行Checkstyle或Findbugs?想看JUnit测试结果吗?你可以在詹金斯做到这一点。