Izpack: Создание пользовательских панелей

Я пытаюсь создать пользовательскую панель для установщика IzPack. Это означает, что я должен продлить IzPanel, Однако, похоже, что если я сделаю это, расширенная панель должна быть в com.izforge.izpack.panels пакет.

Тогда я нашел этот пост, который предусматривает, что:

  1. Таким образом, вы должны включить installer.jar из папки lib IzPack в путь сборки вашего пользовательского проекта панели.
  2. Ваша пользовательская панель / должна / расширить com.izforge.izpack.installer.IzPanel.
  3. Кроме того, он / должен / находиться в пакете com.izforge.izpack.panels.
  4. Вдобавок ко всему, имя вашей сборки jar / должно / совпадать с неполным именем вашего пользовательского класса панели.

Я беру вопрос с 1-м и 4-м пунктами. Они подразумевают, что я должен создать дополнительный JAR-файл для каждого пользовательского IzPanel, который я создаю. Кроме того, мне придется изменить установку IzPack, добавив эти JAR-файлы в один из его подкаталогов.

Является ли эта статья устаревшей (2008 г.) и ее можно безопасно игнорировать, или это все еще верно?
Если нет, то как я могу избежать этого и просто вместо этого использовать расширенную IzPanel на пути к классам?

Спасибо!

2 ответа

Хорошо, я так понимаю, вы хотите, чтобы ваши панели находились в одной банке в вашей собственной упаковке.

Вот как вы это делаете:

  1. Создайте свою банку со всеми вашими пользовательскими панелями
  2. Скопируйте эту банку в панели IzPackStagingFolder\bin\
  3. Отредактируйте дескриптор установщика и под разделами панелей обратитесь к вашему CustomPanels.jar

Затем внутри вашего install.xml вы определяете разделы панелей, похожие на:

...
<panels>
    <panel classname="HTMLInfoPanel"          id="infopanel" encoding="ISO-8859-1" />
    <panel classname="TargetPanel"            id="targetpanel" />
    <panel classname="com.myCompany.installer.panels.MyCustomPanelOne"     id="customPanelOne" jar="bin/panels/CustomPanels.jar" />
    <panel classname="UserInputPanel"         id="userInputPanel" />
    <panel classname="InstallPanel"           id="installPanel" />
    <panel classname="ProcessPanel"           id="processPanel" />
    <panel classname="com.myCompany.installer.panels.MyCustomPanelTwo"   id="customPanelTwo" jar="bin/panels/CustomPanels.jar" />
    <panel classname="FinishPanel"            id="finishPanel" />
</panels>
...

Где CustomPanels.jar может быть одним проектом maven с вашими собственными панелями в вашем собственном пакете с двумя классами CustomPanelOne и CustomPanelTwo, оба расширяющих IzPanel.

Для получения дополнительной информации см. Старую документацию Izxack 4.x по адресу https://izpack.atlassian.net/wiki/spaces/IZPACK/pages/491534/Creating+Panels. На данный момент в более новой вики IzPack 5.x отсутствует этот раздел.

Также обратитесь к XML DTD по адресу https://github.com/izpack/izpack/blob/4.3/src/dtd/installation.dtd

Еще один момент в дополнение к ответу Пола Борса здесь.

Для IzPacks 4.x в качестве зависимости нужен только installer.jar. Когда я впервые попытался скомпилировать пользовательскую панель с помощью installer.jar (izpack-installer-5.0.0-beta11.jar), обнаружил много ошибок компиляции. Izpack 5.0 добавляет дополнительную зависимость от IzPack api (izpack-api-5.0.0-beta11.jar) и Izpack gui(izpack-gui-5.0.0-beta11.jar).

Наслаждайтесь созданием пользовательских панелей.

В ссылке ниже вы найдете полезную справку об установщике izpack.

http://www.imrantariq.com/blog/?p=89

Ссылка ниже содержит подробный PDF-файл для установки с izpack.

http://www.imrantariq.com/blog/?attachment_id=112

Другие вопросы по тегам