【问题标题】:Izpack: Creating custom panelsIzpack:创建自定义面板
【发布时间】:2010-03-26 00:47:06
【问题描述】:

我正在尝试为 IzPack 安装程序创建自定义面板。这意味着我必须扩展IzPanel。但是,如果我这样做,扩展面板needs to be in 似乎是com.izforge.izpack.panels 包。

然后我找到this post,里面规定:

  1. 因此,您必须在自定义面板项目的构建路径中包含 IzPack 的 lib 文件夹中的 installer.jar。
  2. 您的自定义面板 /must/ 扩展 com.izforge.izpack.installer.IzPanel。
  3. 此外,它/必须/驻留在 com.izforge.izpack.panels 包中。
  4. 最重要的是,您的构建 jar 的名称 / 必须 / 与 您的自定义面板类的非限定名称。

我对第 1 点和第 4 点有异议。它们暗示我必须为我创建的 每个 自定义 IzPanel 创建一个额外的 JAR 文件。此外,我必须通过将这些 JAR 添加到其子目录之一来修改 IzPack 安装。

这篇文章是否已过时(2008 年),可以安全地忽略它,还是仍然如此?
如果不是,我怎样才能避免这种情况,而只是在类路径上使用扩展的 IzPanel?

谢谢!

【问题讨论】:

    标签: java classpath izpack custom-panel izpanel


    【解决方案1】:

    好的,我认为您希望将面板放在您自己的包装中的单个 jar 中。

    这就是你的做法:

    1. 使用所有自定义面板创建您的 jar
    2. 将该 jar 复制到 IzPackStagingFolder\bin\panels
    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 文档 wiki 缺少此部分。

    另请参阅https://github.com/izpack/izpack/blob/4.3/src/dtd/installation.dtd 上的 XML DTD

    【讨论】:

      【解决方案2】:

      除了 Paul Bors 在这里回答之外,还有一点。

      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) 的额外依赖。

      享受创建自定义面板的乐趣。

      【讨论】:

        猜你喜欢
        • 2011-04-19
        • 1970-01-01
        • 2019-02-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-05-15
        • 2020-07-15
        • 1970-01-01
        相关资源
        最近更新 更多