繁体   English   中英

如何在 Jenkins 中使用 Groovy 脚本设置颠覆工作区格式?

[英]How to set subversion workspace format with a Groovy script in Jenkins?

我正在尝试以编程方式( Img )更改 SubversionSCM 插件的 Subversion 工作区格式。 当然,我一直在尝试使用 groovy 脚本,但我找不到任何这样做的方法。

通过在 Groovy 控制台中运行此脚本,我能够检索当前格式:

import jenkins.model.*

def inst = Jenkins.getInstance()
def desc = inst.getDescriptor("hudson.plugins.git.GitSCM")
desc =inst.getDescriptor("hudson.scm.SubversionSCM")

println(desc.getWorkspaceFormat())

这将打印出正确的 31。 它是在“svnkit”的“ISVNWCDb”接口中找到的“WC_FORMAT_18”成员的值。 你可以在这里看到它在插件的 git 存储库中使用。

搜索 subversion 插件的文档,我找不到任何设置它的方法,也找不到SubversionSCM 描述符中的任何公共方法。

有没有办法以编程方式配置该设置。 我更喜欢 groovy 脚本,但目前任何事情都可以。

我正在为同样的事情苦苦挣扎,并找到了一些似乎有效的方法。 正如您已经发现的那样,SubversionSCM 描述符上没有工作区格式的设置器,但工作区格式作为私有字段存在。

这似乎对我有用:

def required_format = 31 //31 is SVN 1.8 WF.
svn_desc = instance.getDescriptor("hudson.scm.SubversionSCM")
if(svn_desc.getWorkspaceFormat() != required_format)
{
    Field wf = desc.getClass().getDeclaredField("workspaceFormat")
    wf.setAccessible(true) //Private field -- make it public
    wf.set(desc, required_format)
    wf.setAccessible(false) //And make it private again
}

这在 Jenkins 2.122 和 Subversion Plug-In 2.10.6 中有效

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM