0

假设我在 jenkins/hudson 中有一个 maven2/3 项目,并且在我在相应的 config.xml 文件中配置的 maven 项目上运行一些目标之前,我想在 prestep 和如果满足某些条件,则中断整个作业并将其设置为 SUCCESS(例如,假设我在上一个作业的日志文件中找到了某些内容)。我不想让 MAVEN 开始执行目标

我努力了

import hudson.model.*
def thr = Thread.currentThread()
def build = thr?.executable
build.executor.interrupt(hudson.model.Result.SUCCESS)
out.print "HELLO"

但是什么都没有发生,甚至“HELLO”也打印在日志中。但随后构建被中止。

Parsing POMs
Discovered a new module ...
Modules changed, recalculating dependency graph
...
...jdk1.6.0_22/bin/java -Xmx512m -cp ...
<===[JENKINS REMOTING CAPACITY]===>Build was aborted

谢谢你的时间。

4

1 回答 1

0

我不完全理解你想要什么,因为你在这里描述了一些解决方案,而不是你的确切问题。我知道三个插件,它们也可能对您的问题有用:

  • 使构建插件失败可让您设置作业的结果,并停止进一步处理。可以设置任何状态,包括成功。
  • 条件构建步骤插件允许您为其子构建步骤定义条件。如果满足条件,孩子(人)将运行。
  • m2 额外的构建步骤- 让您在 jenkins 的 maven 作业中在 maven 构建之前或之后运行构建步骤。请注意,最近,这个插件是核心 jenkins 的一部分。在此处输入图像描述

因此,基本思想是您可以在工作中添加条件构建步骤作为预构建步骤,而子步骤可能是一个失败的构建实例。见下图:

于 2012-07-08T20:35:11.513 回答