В чем разница между .hpi и .jpi плагинов Jenkins?

Я установил плагины Jenkins двумя способами, то есть вручную сохранил файл .hpi в домашнем каталоге Jenkins и установил из внешнего интерфейса Jenkins (Manage Jenkins> Manage Plugins).

Здесь я замечаю, что когда я устанавливаю плагин вручную (загруженный как файл .hpi), он устанавливается с расширением .hpi, и при установке плагина через интерфейс Jenkins я замечаю, что плагин снова устанавливается как .jpi.

Но почему? Что происходит на заднем плане? Я знаю, что функциональность не изменится, но выглядит интересно узнать.

Ответ 1

Оба должны быть идентичны тем, которые расширяются, что Jenkins переименовывает hpi в jpi, когда вы устанавливаете его вручную, как вы сказали.

Причина, по которой вы видите в JENKINS_HOME: порядок загрузки плагинов при загрузке Jenkins: plugin.jpi получает приоритет над plugin.hpi, если они присутствуют. Таким образом, установка загрузки гарантирует, что загруженная версия переопределит существующую после перезагрузки.

Ответ 2

Ну, я думаю, потому что Дженкинс раздвоен из Хадсона, так что это "H" в hpi. Очевидно, что J - это изменение.

С точки зрения технологии плагины jpi создаются с использованием архитектуры плагинов gradle, а плагины hpi генерируются с помощью Архитектура Maven

В конечном счете, поскольку вы нашли оба продукта, которые могут использовать Jenkins. Подавляющее большинство построено с использованием Maven, но я поклонник Gradle, поскольку он хорошо связан с разработкой плагинов в Groovy. Вы также можете создать Groovy с помощью Maven

Ответ 3

Плагины, представленные в $JENKINS_HOME/plugins/, всегда должны использовать суффикс .jpi (с базовым именем, являющимся идентификатором плагина). Обычно Jenkins применяет этот шаблон именования даже при загрузке плагина вручную, независимо от того, какое имя файла вы использовали для загрузки, поэтому я не уверен, откуда у вас появился файл *.hpi, если только вы сами скопировал его в эту файловую систему