2010-03-26 78 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)的額外依賴。

享受創建自定義面板。