【问题标题】:Use another plugin in own hudson plugin?在自己的 hudson 插件中使用另一个插件?
【发布时间】:2012-03-16 03:29:07
【问题描述】:

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

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

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

提前致谢。

【问题讨论】:

  • 实际上是 Hudson 还是 Jenkins?另外,您是否愿意详细说明您的最终目标以及您要实现的目标?如果您只需要生成的工件列表,则无需在内部与插件集成;您可以等到插件成功运行完成后,向 Artifactory 请求构建信息。
  • 我更新了问题。正如我所说,它的哈德逊。如何获取构建信息?

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


【解决方案1】:

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

如果您想使用构建器、操作或包装器等实体,您可能需要使用 Hudson 的工具;我不太确定它有哪些设施,但 Jenkins 的 hudson.model.AbstractBuildhudson.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 搜索器最有可能在您的情况下提供帮助。

【讨论】:

  • 非常感谢,搜索请求将完成这项工作。很不错!我会接受的。但我仍然对如何在另一个插件中使用一个插件感兴趣。我将它包含在 pom.xml 中,我可以实例化它,但我想使用 hudsons 实例,而不必传递 hudsons 配置中定义的所有参数。有一个方法Hudson.getInstance().getPlugin(),但它不提供对值对象的访问。
  • 非常感谢。我会试试的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-24
  • 2014-10-30
  • 2010-10-24
  • 1970-01-01
  • 2018-07-31
相关资源
最近更新 更多