0

我有一个 Jenkins Pipeline,它使用 Jenkins email-ext 插件向收件人发送电子邮件。在 emailext 正文中,我添加了 HTML 代码以特定格式发送邮件。但是,当我尝试使用环境变量时,它不会返回变量的值。

在我的管道中,我设置了

SERVICE_NAME = "服务变量"

emailext body:
 ''' <html>
     <body>
    
    <div style="padding-left: 30px; padding-bottom: 15px;" color="blue">
    <font color="navy" size="5"> <b> ${SERVICE_NAME} </b> </font> <br>
    <b> Build </b> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : &nbsp;&nbsp;&nbsp; <font color="blue"># ${BUILD_NUMBER} </font><br>
    <b> Git Branch </b> &nbsp; : &nbsp;&nbsp;&nbsp; <font color="gray"> ${BRANCH_NAME} </font> <br>
    <b> Status </b> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : &nbsp;&nbsp;&nbsp; <font color="red"> ${BUILD_STATUS} </font><br>
    <b> Cause </b> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : &nbsp;&nbsp;&nbsp; <font color="gray"> ${BUILD_CAUSE} </font>
    </div>
    <div style="padding-left: 30px; padding-bottom: 15px;">
    ${CHANGES, showPaths=true, format="<div><b>Author</b> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : &nbsp;&nbsp;&nbsp; <b> %a </b><br><b>Commit-Id</b> &nbsp; : &nbsp;&nbsp;&nbsp;  %r <br>  </div><div style=\\"padding-left:30px;\\"> <b> Message </b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : &nbsp;&nbsp;&nbsp; &#8220;<em>%m</em>&#8221;</div>", pathFormat="</div><div style=\\"padding-left:30px;\\">%p"}
    </div>
    </body>
    </html>''' ,       
                        mimeType: 'text/html',
                        subject: "Some subject ",
                        to: 'mail.com'
                

输出:- ${SERVICE_NAME}

相反,它应该在邮件中返回“服务变量”。

请对此有任何帮助吗?谢谢!

4

2 回答 2

2

您的问题是关于字符串插值。

正如Groovy 语法中所说:

任何 Groovy 表达式都可以插入到所有字符串文字中,除了单引号和三单引号字符串。

当您提供三重单引号字符串时,您特别要求 Groovy不要在其中插入任何变量。

要解决您的问题并使字符串插值工作,请将三单引号更改为三双引号字符串:

emailext body: """
    <html>
    <body>
    <div style="padding-left: 30px; padding-bottom: 15px;" color="blue">
    <font color="navy" size="3"> <b> ${SERVICE_NAME} </b> </font> <br>
    </body></html> """
于 2020-11-30T11:06:46.590 回答
0

您可以在 groovy 中使用字符串连接。

比如:body: ''' 一些文本 ''' + " ${var} " + ''' 剩余文本。'''

emailext body:''' <html>
 <body>
<div style="padding-left: 30px; padding-bottom: 15px;" color="blue"> <font color="navy" size="5"> <b> ''' + "${SERVICE_NAME}" + ''' </b> </font> <br>
<b> Build </b> #''' + "${BUILD_NUMBER}" + '''<br>
</body>
</html>''',
于 2021-07-01T10:59:29.303 回答