在从属服务器上创建SVNClientManager

时间:2013-08-13 12:13:16

标签: jenkins jenkins-plugins master-slave svnkit

在我的Jenkins插件中,此代码用于创建SVNClientManager的实例:

final SVNClientManager svnm = SubversionSCM.createSvnClientManager(build.getProject());

它在主服务器上工作正常,但为了支持从服务器,我必须从

更改它
SubversionSCM.createSvnClientManager(AbstractProject)    

SubversionSCM.createSvnClientManager(ISVNAuthenticationProvider)

根据documentation这些步骤是获取ISVNAuthenticationProvider实例所必需的:

  

因此,要访问ISVNAuthenticationProvider,需要在master上调用此方法,然后将对象传递给slave端,然后在slave上调用SubversionSCM.createSvnClientManager(ISVNAuthenticationProvider)。

但我不知道如何实现它。如何确保在master上调用方法?请提供一个简短示例(可能基于默认插件“HelloWorldBuilder”)。

1 个答案:

答案 0 :(得分:1)

经过数小时的测试后,我自己发现了它。使用主实例确保在主服务器上调用函数“createAuthenticationProvider”。我将此功能放在插件的单独方法中:

private ISVNAuthenticationProvider createAuthenticationProvider(AbstractProject context) {
    return Hudson.getInstance().getDescriptorByType(SubversionSCM.DescriptorImpl.class)
            .createAuthenticationProvider(context);
}

在执行插件期间,您可以通过调用方法生成有效的AuthenticationProvider:

createAuthenticationProvider(build.getProject())