在我的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”)。
答案 0 :(得分:1)
经过数小时的测试后,我自己发现了它。使用主实例确保在主服务器上调用函数“createAuthenticationProvider”。我将此功能放在插件的单独方法中:
private ISVNAuthenticationProvider createAuthenticationProvider(AbstractProject context) {
return Hudson.getInstance().getDescriptorByType(SubversionSCM.DescriptorImpl.class)
.createAuthenticationProvider(context);
}
在执行插件期间,您可以通过调用方法生成有效的AuthenticationProvider:
createAuthenticationProvider(build.getProject())