如何在使用 ANT 的关键部分构建中止之前删除文件?

Posted

技术标签:

【中文标题】如何在使用 ANT 的关键部分构建中止之前删除文件?【英文标题】:How to delete a file before build abort in a critical section with ANT? 【发布时间】:2016-11-10 14:24:09 【问题描述】:

大家好!

如果我的构建中止,我想删除一个文件。

这是我的关键部分:

<touch file="PATH/lockfile.txt" />
<unzip src="PATH/archive.zip" dest="PATH/toto"/>

所以,如果在&lt;unzip&gt; 期间构建中止,我想删除lockfile.txt 我怎样才能做到这一点?

不要犹豫,询问更多详情 非常感谢:)!

【问题讨论】:

你在使用ant-contrib之类的库吗? 是的!我不能使用其他库... 在您的情况下解压缩失败的一般情况是什么?你有没有说yes 告诉你使用其他库?这是令人困惑的答复。 对不起,我不能使用其他库... 【参考方案1】:

如果我们谈论的是作业级别 - 添加构建后操作以删除此文件。这样中止的构建(由于超时或其他原因)立即完成构建部分并移动到后期构建。这将确保删除同一 session\workspace 下的文件。

    转到构建后操作并添加Execute a set of scripts 添加构建步骤 -> 执行 Apache Ant 确保您已在机器上安装 ANT 或在 Jenkins 管理中配置为自动安装 运行以下 ANT 脚本:

<property environment="env"/> <property name="ws" value="$env.WORKSPACE"/> <delete file="$ws\$file_Name"/>

祝你好运!

【讨论】:

我希望这样做,但我还有其他工作正在进行中,如果我不删除此文件,它们将无法运行...创建此文件是为了说“嘿,伙计们,当我删除它时你可以跑……” 我个人不喜欢 I\O 标志为了运行\不运行某些东西——我认为这是一种不好的做法。您不能管理工作以单独触发吗?使用 Throttle 并发构建、锁定插件或任何其他方法在构建管道级别而不是进程级别进行管理? 我是学生,我在一家长期使用该系统的公司工作...我无法按照自己的意愿管理工作:/ 无论哪种方式,我的答案都保持不变 - 将构建后操作添加到您的作业以删除文件。你想让我用 ANT 代码编辑答案(与操作系统无关)? 很高兴!

以上是关于如何在使用 ANT 的关键部分构建中止之前删除文件?的主要内容,如果未能解决你的问题,请参考以下文章

如何在构建之前使用 npm 删除文件夹

优雅地中止 FileStream 写入循环

如何强制代码样式格式作为构建的一部分?

我可以将unix权限存储在zip文件(由apache ant构建)中吗?

如何在 Ant 目标中使用文件大小

如何使用 Ant 构建 Android 项目? (IntelliJ IDE)