我正在尝试使用Jenkins上的groovy脚本从SVN获取更改列表。 这就是我正在使用的:
import hudson.model.*
import hudson.util.*
import hudson.scm.*
import hudson.scm.SubversionChangeLogSet.LogEntry
def build = Thread.currentThread()?.executable
def thr = Thread.currentThread()
def envVarsMap = build.parent.builds[0].properties.get("envVars")
// get ChangesSets with all changed items
def changeSet= build.getChangeSet()
List<LogEntry> items = changeSet.getItems()
def affectedFiles = items.collect { it.paths }
def fileNames = affectedFiles.flatten()
new File(envVarsMap["WORKSPACE"],'ChangesSets.txt').withWriter { out ->
fileNames.each {
out.println it.path
}
}
但是在Jankins上运行语法检查时出现了这个错误:
startup failed:
Script1.groovy: 4: unable to resolve class hudson.scm.SubversionChangeLogSet.LogEntry
@ line 4, column 1.
import hudson.scm.SubversionChangeLogSet.LogEntry
^
1 error
我是groovy的新手,任何指针都会非常有用。
Groovy版本:2.3.7
JDK:java版本&#34; 1.7.0_67&#34;
Java(TM)SE运行时环境(版本1.7.0_67-b01)
Java HotSpot(TM)64位服务器VM(内置24.65-b04,混合模式)
Windows 64位操作系统
编辑:
我在subversion-plugin下找到了这个文件。 https://github.com/jenkinsci/subversion-plugin/blob/master/src/main/java/hudson/scm/SubversionChangeLogSet.java
在Jenkins安装中,它位于: C:\詹金斯\插件\颠覆\ WEB-INF \ lib中\ classes.jar \哈德森\ SCM \ SubversionChangeLogSet.class
基本上在classes.jar文件中的C:\ Jenkins \ plugins \ subversion \ WEB-INF \ lib下。
任何指针如何访问它。我认为我接近解决方案但不够接近。