2017-05-23 8 views
0

그루브 스크립트에서 다음을 구현하려고하는데 오류가 발생합니다 : 배열에있는 HTML 파일의 내용을 읽은 다음 grep에 해당 배열의 내용을 읽으려고합니다.Groovy : 배열에있는 파일의 내용을 읽고 무언가에 grep을 입력하십시오.

def file1 = new File("/path/to/the/file/xyz.html"); 
def lines = file1.readLines() 
if ((-e "/path/to/the/file/xyz.html") and (!(grep /jira.bugtracker.com/, lines)) 
{ 
    println (" the changes are present\n"); 
    exit 0; 
} 
else 
{ 
    println (" the changes are not present\n"); 
    exit 1; 
} 

코드를 검토하고 올바른 방법을 제안하십시오.

+0

어떤 오류가 발생합니까? 젠킨스 파일의 맥락에서이게 맞습니까? 게시 할 수 있습니까? – burnettk

답변

2
def file1 = new File("/path/to/the/file/xyz.html") 
def lines = file1.readLines() 
def found = lines.find{ line-> line =~ /jira.bugtracker.com/ } 
println ("the changes are ${ found ? '' : 'not ' }present") 
return found ? 0 : 1 
+0

이 코드에 다음 오류 메시지가 표시됩니다.'스크립트가 staticMethod org.codehaus.groovy.runtime.DefaultGroovyMethods readLines java.io.File'을 사용하도록 허용되지 않았습니다. 내가 놓친 게 있니? – Yash

+0

젠킨스에있는 것 같습니다.이 문제를 발견했습니다 : https://issues.jenkins-ci.org/browse/JENKINS-35681/호출 할 수있는 메소드 목록이있는 것 같습니다. 만약 당신이 파이프 라인에 있다면 - 아마도 네이티브 파이프 라인에 상응하는 파일 내용을로드 할 수 있습니다 ... 그리고 나는 이것을 발견했습니다 https://github.com/jenkinsci/pipeline-examples/blob/master/docs/BEST_PRACTICES.md – daggett

+0

Thanks @ 참조 용 daggett! – Yash

1

이렇게하면됩니다.

if (new File("/path/to/the/file/xyz.html").text?.contains("jira.bugtracker.com")){ 
    println (" the changes are present\n"); 
} else { 
    println (" the changes are not present\n"); 
} 
+0

감사합니다. @sfgroups. 그것은 나를 위해 일했다. – Yash