从Builder和Notifier访问全局配置的数据

时间:2013-05-27 18:32:36

标签: java jenkins jenkins-plugins

我正在尝试扩展Jenkins Xcode plugin,并希望集成一个构建后的步骤。

插件的当前状态允许通过Jenkins设置页面配置钥匙串。因此,它实现了描述符并覆盖了它的configure方法。 UI在global.jelly文件中定义。

现在我想访问从另一个类配置的钥匙串。我创建了一个hudson.tasks.Notifier的子类(该类与XCodeBuilder类放在同一个包中),它本身包含一个类子类BuildStepDescriptor<Builder>。基本上我复制了XCodeBuilder类中BuildStepDescriptor的内容,但是当试图显示keychains属性的内容时,它表示零元素(执行{{时) 1}})。用于帖子构建步骤的UI本身显示正常。

我的Java知识有点生疏,这是我延伸Jenkins的第一步。所以也许我甚至无法从插件中访问这些数据,但是任何帮助都表示赞赏。

1 个答案:

答案 0 :(得分:2)

我会回答我自己在网上搜索人的问题。我按照提出的解决方案here

  • 创建一个继承自jenkins.model.GlobalConfiguration
  • 的类
  • Descriptor类的全局配置逻辑放入新创建的逻辑中。
  • 确保您的班级命名的子文件夹中有config.jelly
  • 您需要访问全局配置的位置,请使用私有非最终类成员,并使用@Injectjavax.inject.Inject)对其进行注释。

首先,我将构建步骤的私有成员变量放在构建步骤类本身中,并尝试通过我的果冻中的${instance.getGlobalConfiguration().getProperty()}访问它。但是这没有用,因为新的尚未保存的构建步骤的实例不存在。所以我将私有成员放在构建步骤的Descriptor内,并通过${descriptor.getGlobalConfiguration().getProperty()}访问它,然后你就去了。