Izpack: Создание пользовательских панелей - PullRequest
8 голосов
/ 26 марта 2010

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

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

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

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

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

Спасибо!

Ответы [ 2 ]

2 голосов
/ 17 ноября 2012

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

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

  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.

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

Также ссылка на DTD XML в https://github.com/izpack/izpack/blob/4.3/src/dtd/installation.dtd

0 голосов
/ 10 апреля 2013

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

Для 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).

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

...