我对我的 ant 脚本有一些要求。
我的 ant 脚本将"mobile"
文件夹从版本控制软件签出到 "Nightly Build"
文件夹中,我有一些要求:
-
如果在
"Nightly Build"
文件夹中存在一个文件夹"mobile"
文件夹,我想通过使用重命名文件夹来备份该旧文件夹"mobile" + timestamp
-
"Nightly Build"
文件夹应始终仅包含 7 个此类"mobile"
文件夹。这意味着如果有 8"mobile"
,我将需要删除最旧的"mobile"
文件夹
这在 ANT 脚本(按顺序执行)中是否可行,我该怎么做?
建议 - 这只是删除任何超过七天的内容,而不是保留固定数量的构建。
<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
任务和选择器。
Martin Clayton对你所问的问题有正确的答案。
但是,我建议你研究一下 Jenkins 的构建处理。Jenkins 可以处理你提到的所有事情,并且以一种独立于实现的方式完成。例如,如果您更改了版本控制系统或构建要求发生了变化,该怎么办?您将被迫更改构建.xml文件以跟上。
使用 Jenkins,您的 build.xml 文件仅用于构建。Jenkins 可以处理签出、构建、保存构建工件、报告错误以及测试和部署。因此,如果你改变了你的版本控制或构建要求,而不是破坏你的构建.xml(并可能破坏它),你只需要在 Jenkins 任务中更改一个参数。
下载 Jenkins 并查看它。它设置简单,易于理解。此外,它还包含数十个可以扩展它的插件。想要发布 Java 文档?想要运行 Checkstyle 或 Findbugs?想要查看 JUnit 测试结果?你可以在 Jenkins 中做到这一点。