Jenkins:$ {BUILD_LOG,maxLines,escapeHtml}无效

时间:2015-09-21 13:57:34

标签: groovy jenkins continuous-integration email-attachments

我正在尝试使用" $ {BUILD_LOG,maxLines,escapeHtml}"喜欢描述: How can I take last 20 lines from the $BUILD_LOG variable?

不幸的是,它对我不起作用。

我收到此错误:

  

Script1.groovy:114:期待除了' \ n'&#39 ;;无论如何得到它@第114行,第301栏。      由用户MYUSERNAME提供

我在此行中的代码是:

          msg.setText("This build (" + build.getFullDisplayName() 
          + " ) contains the following tasks:\n\nTASK\t\t\t  IMPLEMENTER:\n" 
          + taskList + "\n\n\nLink to this 
          build: ${BUILD_URL} \n ${BUILD_LOG, maxLines=9999, escapeHtml=false}" );

如果我把它拿出来,它就可以了。这就是为什么我的猜测是," BUILD_LOG "不再工作了吗?

  

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

编辑: 也许作为补充:我试图用PreSend groovy脚本来做这件事。 因为我正在动态构建电子邮件文本。 ${BUILD_URL}工作正常,${BUILD_LOG, maxLines=9999, escapeHtml=false}没有(对我来说)我正在为此寻找解决方案...... msg对象是java MimeMessage。

谢谢, 丹尼尔

4 个答案:

答案 0 :(得分:1)

该错误消息通常与未关闭的引号相关,评论以/而不是//开头,等等。在您的代码中,我唯一能看到的是您的第三行未正确完成,即在"\n\n\nLink to this之后你没有关闭双引号,而是开始一个新行(从而expecting anything but ''\n''

尝试写整行:

msg.setText("This build (" + build.getFullDisplayName() 
          + " ) contains the following tasks:\n\nTASK\t\t\t  IMPLEMENTER:\n" 
          + taskList + "\n\n\nLink to this build: ${BUILD_URL} \n ${BUILD_LOG, maxLines=9999, escapeHtml=false}" );

或关闭引号:

msg.setText("This build (" + build.getFullDisplayName() 
          + " ) contains the following tasks:\n\nTASK\t\t\t  IMPLEMENTER:\n" 
          + taskList + "\n\n\nLink to this "
          + "build: ${BUILD_URL} \n ${BUILD_LOG, maxLines=9999, escapeHtml=false}" );

答案 1 :(得分:0)

我使用了以下内容,它对我来说很好。

LD.E.128

我尝试使用Jenkins版本1.617

答案 2 :(得分:0)

您是否尝试过设置escapeHtml=true?可能会发生此标记按原样扩展,然后" "中的字符串变为无效。

答案 3 :(得分:0)

在最新版本的变量$ {BUILD_LOG}中我无法使用 - 只有我可以设置登录电子邮件内容的解决方案:

msg.setText(build.getLog())

作为Jenkins全局配置中的默认预发送脚本...