如何在代理端提供Teamcity插件的服务器管理级别配置?

如何在代理端提供Teamcity插件的服务器管理级别配置?,teamcity,Teamcity,我正在开发一个带有标准服务器和代理端的Teamcity插件。 在服务器端,我有一个管理页面,用户在其中输入一些参数,我用 CustomSettingsManager.getCustomSettings(pluginDescriptor).setValue(ATT,value) 我的问题是如何在插件端获得这些保存的值 我使用的是agentLifeCycleApter,所以我有AgentRunningBuild和BuildRunnerContext这样的对象,但我找不到任何东西来获取插件保存的参数

我正在开发一个带有标准服务器和代理端的Teamcity插件。 在服务器端,我有一个管理页面,用户在其中输入一些参数,我用

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使用的是构建功能,它们是构建配置级别的,而不是整个服务器配置设置,对吗?哦,是的。你的插件设置了什么样的属性?什么是“整个服务器配置设置”?