为jenkins构建从SVN检索更改的文件列表并与Groovy交互

为jenkins构建从SVN检索更改的文件列表并与Groovy交互,svn,groovy,jenkins,Svn,Groovy,Jenkins,我是Jenkins的新手,使用Groovy插件 我修改了以前的剧本 import hudson.model.* import hudson.util.* import hudson.scm.* import hudson.scm.SubversionChangeLogSet.LogEntry println "Start Build .." def changeSet= build.getChangeSet() if(changeSet.isEmptySet()){ printl

我是Jenkins的新手,使用Groovy插件

我修改了以前的剧本

import hudson.model.*
import hudson.util.*
import hudson.scm.*

import hudson.scm.SubversionChangeLogSet.LogEntry

println "Start Build .." 

def changeSet= build.getChangeSet()

if(changeSet.isEmptySet()){
   println "No changes found"   
} 
else{

  List<LogEntry> items = changeSet.getItems()
  println items.size()  

  def affectedFiles = items.collect { it.paths }
  def fileNames = affectedFiles.flatten()

  new File("/tmp/svnChangeList").withWriter { out ->

  fileNames.each {
    println it.path 
    out.println it.path
  }

 }

}

println "End Build .."  **  

正如您所看到的,控制台有一个更改列表(VaadinUI.java),但Groovy似乎没有注意到这一点。。我做错了什么

2件事=>1)您的项目大小为0,因此您应该检查如何检索项目(api方法??)和2)输出。在groovy中,println是一个废话,请使用println。希望对调试有帮助!项目列表的类型必须是SubversionChangeLogSet.path的实例groovy插件定义了许多预定义的变量来构建当前的AbstractBuild。发射装置发射装置。监听器构建监听器。输出一个PrintStream(listener.logger)和'out.println'@ludo_rj'中提到的输出引用
Started by timer
Building in workspace C:\.jenkins\jobs\Sample Build\workspace
Updating https://Rob-VAIO/svn/sample at revision '2014-03-17T00:45:37.619 +0000'
U         trunk\src\com\example\vaadin\VaadinUI.java
At revision 17
no revision recorded for https://Rob-VAIO/svn/sample in the previous build
Start Build ..
No changes found
End Build ..
Finished: SUCCESS