在自己的hudson插件中使用另一个插件?

时间:2012-02-26 08:59:23

标签: plugins continuous-integration hudson hudson-plugins artifactory

我正在开发自己的hudson插件,但找不到真正全面的文档。

如何连接到artifactory插件以获取工件列表? artifactory插件安装在hudson中,但我不知道如何从我自己的插件中实例化/连接它。

我的插件会将特定版本部署到我们的webstart服务器。这包括通过HTTP从artifactory下载工件,创建version.xml和* .jnlp文件,并使用SCP将这三个文件上传到Web服务器。对于这个插件的配置,我需要一个神器中特定项目的所有版本的列表。

提前致谢。

1 个答案:

答案 0 :(得分:3)

如果您想使用另一个插件的模型和实用程序类,那么它只是依赖于该插件(编译方式)并确保安装依赖插件的过程,以便您可以在运行时引用这些类

如果你想使用像构建器,动作或包装器这样的实体,你可能需要使用Hudson的设施;我不太确定它有哪些设施,但Jenkins的 hudson.model.AbstractBuild hudson.model.AbstractProject (和其他)对象的方法如下:

  • hudson.model.Actionable#的getActions
  • AbstractProject#getPublishersList

那将返回那些实体(假设它们已在相关项目中配置)。

除了这种方法之外,还有很多方法可以使用Artifactory的REST API解决您的问题:

  • 如果工件包含在您知道的一个位置的Artifactory中,您可以执行file list query以显示该目录的内容。

  • 如果您想获取特定Hudson构建的生成工件,并假设您使用Hudson插件部署构建信息,则可以使用Build Info resource请求构建信息对象;利用此对象中列出的生成工件的校验和,您可以执行artifact checksum查询以查明Artifactory中是否存在这些工件以及这些工件的位置。

  • 如果您不知道具体的构建名称和编号或位置,您可以使用search facilities中的任何一个来根据不同的细节定位工件; GAVC或XPath搜索者最有可能在您的情况下提供帮助。