Izpack: Создание пользовательских панелей
Я пытаюсь создать пользовательскую панель для установщика IzPack. Это означает, что я должен продлить IzPanel
, Однако, похоже, что если я сделаю это, расширенная панель должна быть в com.izforge.izpack.panels
пакет.
Тогда я нашел этот пост, который предусматривает, что:
- Таким образом, вы должны включить installer.jar из папки lib IzPack в путь сборки вашего пользовательского проекта панели.
- Ваша пользовательская панель / должна / расширить com.izforge.izpack.installer.IzPanel.
- Кроме того, он / должен / находиться в пакете com.izforge.izpack.panels.
- Вдобавок ко всему, имя вашей сборки jar / должно / совпадать с неполным именем вашего пользовательского класса панели.
Я беру вопрос с 1-м и 4-м пунктами. Они подразумевают, что я должен создать дополнительный JAR-файл для каждого пользовательского IzPanel, который я создаю. Кроме того, мне придется изменить установку IzPack, добавив эти JAR-файлы в один из его подкаталогов.
Является ли эта статья устаревшей (2008 г.) и ее можно безопасно игнорировать, или это все еще верно?
Если нет, то как я могу избежать этого и просто вместо этого использовать расширенную IzPanel на пути к классам?
Спасибо!
2 ответа
Хорошо, я так понимаю, вы хотите, чтобы ваши панели находились в одной банке в вашей собственной упаковке.
Вот как вы это делаете:
- Создайте свою банку со всеми вашими пользовательскими панелями
- Скопируйте эту банку в панели IzPackStagingFolder\bin\
- Отредактируйте дескриптор установщика и под разделами панелей обратитесь к вашему 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.