电子邮件扩展插件-无法使BUILD_LOG_EXCERPT正常工作

不管我在BUILD_LOG_EXCERPT中输入什么内容,我得到的都是一封空的电子邮件,因此可以使用一些帮助。

我有一个写入控制台的Java程序。Jenkins控制台输出的片段如下所示:

...

[INFO] Scanning for projects...

[INFO]

[INFO] ------------------------------------------------------------------------

[INFO] Building project1 0.0.1-SNAPSHOT

[INFO] ------------------------------------------------------------------------

[INFO]

[INFO] --- exec-maven-plugin:1.4.0:java (default-cli) @ project1 ---

Parameters provided: SG, 100, 1000

query: select COUNT(*) from table1 where col1 = ? and col2 = ? and col3 = ?

Rows in table: 5776

Threshold: 100

Rows returned above threshold, skipping dpan generation batch file.

[INFO] ------------------------------------------------------------------------

[INFO] BUILD SUCCESS

[INFO] ------------------------------------------------------------------------

[INFO] Total time: 1.125 s

[INFO] Finished at: 2016-02-08T09:31:37-08:00

[INFO] Final Memory: 8M/245M

...

在Jenkins作业中,我创建一个Post Build步骤,并将以下行放入Default Content:

${BUILD_LOG_EXCERPT, start="\\b(Parameters)\\b", end="\\b(Threshold)\\b"}

当我触发工作时,我收到的只是一封空电子邮件。但是,如果我添加

${BUILD_LOG, maxLines=9999, escapeHtml=false}

然后我会在电子邮件中获得完整的控制台输出。有任何想法吗?我正在使用2.40.3版本的插件。

回答:

看起来您的正则表达式找不到任何匹配项,因此您没有得到日志的任何行。这是因为该BUILD_LOG_EXCERPT变量用于java.util.regex.Pattern.Matcher.matches()匹配一个正则表达式-

并且仅True整个

字符串匹配时才返回(在此SO问题中引用)。日志解析器逐行运行,因此它正在针对您的正则表达式测试整行,并且失败(因为“Parameters”后面有字符)。

如果您要查找以开头Parameters但后面可能包含字符的字符串,则可以匹配

"\\b(Parameters)\\b(?s).*"

它将匹配“参数”及其后的任意字符串。

以上是 电子邮件扩展插件-无法使BUILD_LOG_EXCERPT正常工作 的全部内容, 来源链接: utcz.com/qa/409426.html

回到顶部