Difference between hpi and jpi plugins

51 views
Skip to first unread message

Parichay Barpanda

unread,
Mar 20, 2019, 6:09:20 PM3/20/19
to Jenkins Developers
How are *.hpi and *.jpi plugins different? 

For example, when I install github-branch-source-plugin from my Jenkins instance, it installs *.jpi plugin (that is what i find under /var/jenkins_home/plugins). And when I clone the source code of the same plugin and I run 'mvn install', I get a *.hpi plugin generated. 

A quick search a found 3 relevant points:

One mailing list discussion says - "When you start up any Jenkins after something like 1.5xx then it will automatically rename all .hpi files to .jpi " 

Another says - "Jenkins core 1.449 won't allow installing hpi plugins anymore"

One stackoverflow answer says - "In terms of technology, the jpi plugins are generated using the gradle plugin architecture and hpi plugins are generated with the Maven architecture"

Can someone shed some light on this? Which of the above theories is acceptable?

Slide

unread,
Mar 20, 2019, 7:47:30 PM3/20/19
to Jenkins Developer List
The Gradle vs maven thing is wrong. Hpi is just a legacy extension, the files will be renamed to .jpi as you mentioned. There really is not a difference.

--
You received this message because you are subscribed to the Google Groups "Jenkins Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email to jenkinsci-de...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/jenkinsci-dev/f49e8614-70d8-4fa2-973a-20181d43c14d%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Parichay Barpanda

unread,
Mar 20, 2019, 7:55:37 PM3/20/19
to jenkin...@googlegroups.com
When I place the generated hpi plugin into the plugins folder (/var/jenkins_home/plugins) it isn't renamed after restart but it works with my Jenkins instance. Thanks for the info. :)

Richard Bywater

unread,
Mar 20, 2019, 8:29:17 PM3/20/19
to jenkin...@googlegroups.com
My recollection is that hpi stood for Hudson PlugIn. With the move away from Hudson to Jenkins, this became Jenkins PlugIn and hence jpi. Could be wrong but as Slide says, there's no real difference apart from the name.

Cheers
Richard.

Jesse Glick

unread,
Mar 20, 2019, 9:14:18 PM3/20/19
to Jenkins Dev
On Wed, Mar 20, 2019 at 7:55 PM Parichay Barpanda
<parichay...@gmail.com> wrote:
> When I place the generated hpi plugin into the plugins folder

Do not do that. If you must touch the filesystem directly, always
create `${JENKINS_HOME}/plugins/${id}.jpi`. Normally you should allow
Jenkins to store plugins via browser or CLI upload, or use something
like `mvn hpi:run` to test a plugin interactively, or use an official
Docker image generator, etc.
Reply all
Reply to author
Forward
0 new messages