2010-03-26 93 views
7

我正在尝试为IzPack安装程序创建自定义面板。这意味着我必须延长IzPanel。不过,看来如果我这样做,扩展面板needs to be incom.izforge.izpack.panels包。Izpack:创建自定义面板

后来我发现this post,其中规定:

  1. 因此,您必须包括的IzPack在您的自定义面板项目的构建路径的lib文件夹installer.jar。
  2. 您的自定义面板/必须/扩展com.izforge.izpack.installer.IzPanel。
  3. 此外,它必须位于com.izforge.izpack.panels包中。
  4. 最重要的是,您的构建罐的名称/必须/与您的自定义面板类的 不合格名称相同。

我把第一和第四点问题。他们暗示我必须为创建额外的JAR文件,每个我创建的自定义IzPanel。另外,我将不得不通过将这些JAR添加到其子目录来修改IzPack安装。

这篇文章过时(2008年),它可以安全地忽略,或者这仍然是真的吗?
如果不是我怎么能避免这种情况,只需要在类路径上扩展IzPanel呢?

谢谢!

回答

2

好吧,我想你希望你的面板在自己的包内一个单一的罐子。

这是你如何做到这一点:

  1. 创建所有的自定义面板的罐子
  2. 将复制的jar到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 doc wiki缺少这一部分。

在除了保罗博斯https://github.com/izpack/izpack/blob/4.3/src/dtd/installation.dtd

0

还有一点也reffer到XML 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)的额外依赖。

享受创建自定义面板。