1
eachLine 클로저에서 한 줄씩 로그 파일을 처리 중이므로 이전 반복에서 값을 기억해야합니다. 문제는 루프 내부의 "currentCampaign"변수의 범위가 루프 외부와는 분명히 다르므로 각 반복 사이에 기억되지 않습니다.groovy closure 외부 변수에 대한 액세스
def currentCampaign = ""
file.eachLine{ line->
if(line.indexOf("campaignId") != -1){
currentCampaign = extractCampaign(line)
}
if(line.indexOf("redirectlink") != -1){
recordRedirect(currentCampaign, extractRedirectLink(line))
}
}