Jenkins 插件的 .hpi 和 .jpi 有啥区别?

Posted

技术标签:

【中文标题】Jenkins 插件的 .hpi 和 .jpi 有啥区别?【英文标题】:What is difference between .hpi and .jpi of Jenkins plugins?Jenkins 插件的 .hpi 和 .jpi 有什么区别? 【发布时间】:2015-06-05 04:29:48 【问题描述】:

我以两种方式安装了 Jenkins 插件,即手动将 .hpi 文件保存在 Jenkins 主目录中,以及从 Jenkins 前端安装(管理 Jenkins > 管理插件)。

我在这里注意到的是,当我手动安装插件(下载为 .hpi 文件)时,它安装了扩展名 .hpi,并且在通过 Jenkins 前端安装插件时,我注意到插件再次安装为 .jpi

但是为什么呢?后台发生了什么?我知道功能不会改变,但知道它看起来很有趣。

【问题讨论】:

【参考方案1】:

当您按照您所说的手动安装时,两者都应该与 Jenkins 将 hpi 重命名为 jpi 的扩展相同。

您在 JENKINS_HOME 中看到两者的原因是 Jenkins 启动时加载插件的顺序:plugin.jpi 优先于 plugin.hpi,以防两者都存在。这是上传安装确保重新启动后上传的版本会覆盖现有版本的方式。

【讨论】:

【参考方案2】:

嗯,我认为是因为Jenkins forked from Hudson 所以这是 hpi 中的“H”。 J 显然是对它的改变。

在技术方面,jpi插件使用gradle plugin architecture生成,hpi插件使用Maven architecture生成

最终,您发现 Jenkins 可以使用这两个生成插件。绝大多数是使用 Maven 构建的,但我是 Gradle 的粉丝,因为它与 Groovy 中的开发插件很好地结合在一起。您还可以使用 Maven 在 Groovy 中构建

【讨论】:

.hpi 与 .jpi 与使用的构建工具无关(Maven 与 Gradle) 答案 2 是正确的 - 我不能删除它接受的答案【参考方案3】:

$JENKINS_HOME/plugins/ 中的插件应始终使用.jpi 后缀(基本名称为插件标识符)。通常,即使在 uploading a plugin manually 时,Jenkins 也会强制执行此命名模式,无论您用于上传的文件名是什么,所以我不确定您是如何在这里拥有 *.hpi 文件的,除非您直接将其复制到此文件系统位置。

【讨论】:

以上是关于Jenkins 插件的 .hpi 和 .jpi 有啥区别?的主要内容,如果未能解决你的问题,请参考以下文章

Jenkins权限控制

jenkins 安装git插件的那些坑

jenkins集群 -- 持续集成

jenkins jira 集成有啥用

Linux上GitLab+Jenkins实现VueSpring Cloud项目的自动部署

jenkins默认插件