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 有啥区别?的主要内容,如果未能解决你的问题,请参考以下文章