2013-10-21 56 views
1

我在$ JENKINS_HOME名爲sender_email_address.groovy /電子郵件模板Groovy腳本它具有以下代碼詹金斯電子郵件-EXT插件 - 使用scriptler設置味精發件人的電子郵件地址

<% 
StringBuilder builderEmail = new StringBuilder() 
builderEmail.append("${build.buildVariables.get('BUILD_USER')}") 
builderEmail.append("@collective.com") 
def sender_email = builderEmail.toString() 
%> 
${sender_email} 

我想設置email-ext插件的預發送腳本中的電子郵件發件人地址。這裏是一個確實的代碼:

import javax.mail.Message.RecipientType 
import javax.mail.Address 
import javax.mail.internet.InternetAddress 
import javax.mail.internet.MimeMessage 

def senderAddress = ${SCRIPT, script="sender_email_address.groovy"} 
listener.logger("Sender address = " + senderAddress) 
msg.setFrom(new InternetAddress(senderAddress)) 

我得到以下錯誤:

def senderAddress = Error in script or template: org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed: 
Script1.groovy: 1: unexpected token: < @ line 1, column 1. 
<% 
^ 

我想從電子郵件地址設置發送到是誰在登錄的用戶。我有權訪問$ {BUILD_USER}值。但是,如果我直接在使用如下圖所示

msg.setFrom(new InternetAddress("${BUILD_USER}") 

腳本直接替換$ {} BUILD_USER令牌腳本本身的電子郵件地址預先發送腳本。由於下一次使用不同的用戶登錄時,這會破壞對其進行標記的目的,所以令牌不可替換。有沒有一種方法可以在其他地方實現,只需保留令牌$ {BUILD_USER}?

回答

0

如果您將$ {SCRIPT}標記與「script」參數一起使用,則不需要像模板一樣使用<%>>。所以,你的代碼應該是這樣的:

StringBuilder builderEmail = new StringBuilder() 
builderEmail.append("${build.buildVariables.get('BUILD_USER')}") 
builderEmail.append("@collective.com") 
builderEmail.toString() 
相關問題