2

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

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

它在主服务器上运行良好,但为了支持从服务器,我必须将其从

SubversionSCM.createSvnClientManager(AbstractProject)    

SubversionSCM.createSvnClientManager(ISVNAuthenticationProvider)

根据文档,需要这些步骤来获取 ISVNAuthenticationProvider 的实例:

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

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

4

1 回答 1

1

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

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

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

createAuthenticationProvider(build.getProject())
于 2013-09-02T12:50:40.180 回答