如何在代理端提供Teamcity插件的服务器管理级别配置?
我正在开发一个带有标准服务器和代理端的Teamcity插件。 在服务器端,我有一个管理页面,用户在其中输入一些参数,我用如何在代理端提供Teamcity插件的服务器管理级别配置?,teamcity,Teamcity,我正在开发一个带有标准服务器和代理端的Teamcity插件。 在服务器端,我有一个管理页面,用户在其中输入一些参数,我用 CustomSettingsManager.getCustomSettings(pluginDescriptor).setValue(ATT,value) 我的问题是如何在插件端获得这些保存的值 我使用的是agentLifeCycleApter,所以我有AgentRunningBuild和BuildRunnerContext这样的对象,但我找不到任何东西来获取插件保存的参数
CustomSettingsManager.getCustomSettings(pluginDescriptor).setValue(ATT,value)
我的问题是如何在插件端获得这些保存的值
我使用的是
agentLifeCycleApter
,所以我有AgentRunningBuild
和BuildRunnerContext
这样的对象,但我找不到任何东西来获取插件保存的参数。以前对我有效的方法是调用((AgentRunningBuild)build.getBuildFeatureSoftType(我的插件)
。这将返回AgentBuildFeature
对象的集合,您可以对每个对象调用feature.getParameters()
示例。我找到的解决方案是创建一个
AbstractBuildParametersProvider
,它从CustomSettingsManager
收集信息,并将提供作为参数添加到构建中
public class SettingsParameterProvider extends AbstractBuildParametersProvider {
private final CustomSettingsManager customSettingsManager;
private final PluginDescriptor pluginDescriptor;
public SettingsParameterProvider(@NotNull CustomSettingsManager settingsManager,
@NotNull PluginDescriptor descriptor) {
this.customSettingsManager = settingsManager;
this.pluginDescriptor = descriptor;
}
@Override
public Map<String, String> getParameters(SBuild build, boolean emulationMode) {
return ServerSettingsManager
.loadAsMap(customSettingsManager.getCustomSettings(pluginDescriptor));
}
}
公共类设置SparAmeterProvider扩展AbstractBuildParametersProvider{
私有最终CustomSettingsManager CustomSettingsManager;
私有最终PluginDescriptor PluginDescriptor;
公共设置SparAmeterProvider(@NotNull CustomSettingsManager settingsManager,
@NotNull PluginDescriptor描述符){
this.customSettingsManager=settingsManager;
this.pluginDescriptor=描述符;
}
@凌驾
公共映射getParameters(SBuild构建、布尔仿真模式){
返回服务器设置管理器
.loadAsMap(customSettingsManager.getCustomSettings(pluginDescriptor));
}
}
但是,IIUC使用的是构建功能,它们是构建配置级别的,而不是整个服务器配置设置,对吗?哦,是的。你的插件设置了什么样的属性?什么是“整个服务器配置设置”?