特に急ぐこともなく暇を見つけて取り組んできたApache Antのインストーラー作りだが、諸事情により少しペースを上げることにした。Mac OS X環境へのインストール周りをもっと詰めたかったのだが、ひとまず諦めて先に下記の4項目を片付けておく。
- インストールするコンポーネントを選べるようにする
- インストール先を指定できるようにする
- インストーラーのルックアンドフィールをカスタマイズする
- EULAを確認できるようにする
インストールするコンポーネントを選べるようにする
バイナリディストリビューションには5個のフォルダといくつかのファイルとが含まれている。このうち、Apache Antの実行に必要なのはbinフォルダとlibフォルダだけ[1]。そこで、必要なものだけを選んでインストールできるよう、PacksPanelを追加する。
パックの名前および説明は、Installing Antのディレクトリレイアウト図に倣った。なお、パック名を変える際は、それを参照しているレジストリ定義ファイル (registry-spec.xml) の書き換えも忘れずに。
詳細は下記を参照。
インストール先を指定できるようにする
有無を言わさず/ApplicationsフォルダやC:\Program Filesフォルダなどにインストールしてしまうのは、シンプルでわかりやすい反面、困ったことにも (例: Cドライブに余裕がない、パスに空白文字が含まれるのは……、など)。ここでは、シンプルさよりも運用時の柔軟性を優先し、DefaultTargetPanelをTargetPanelに替えることにする。
詳細は下記を参照。
インストーラーのルックアンドフィールをカスタマイズする
Apache Antにはロゴがある。せっかくロゴがあるのだから、これを使ってインストーラーのルックアンドフィールをカスタマイズする。併せてインストーラーのタイトルもそれらしくいじってみる。
詳細は私的リポジトリ (r21) を参照。
EULAを確認できるようにする
世のインストーラーに倣って、インストール時にEULAを表示/確認できるようにする。なお、追加するパネルはLicensePanelではなくLicencePanel[2]。
一つだけ残念なのは、EULAの一部の文字が化けてしまうこと (W3C®
→ W3Cツョ
)。IzPackのBTSではこの不具合はIzPack 4.3.4で修正されたとなっている[3]が、手元の環境 (IzPack 4.3.4) では不具合が再現してしまう。
というわけで、日本語環境 (非ISO-8859-1環境?) では下記のどちらかの対策が必要な模様。
-
インストール定義時: LICENSEファイルのエンコード形式を明示する
<res id="LicencePanel.licence" src="LICENSE" encoding="ISO-8859-1"/>
インストーラー実行時: システムプロパティfile.encodingに値UTF-8を指定して実行する
java -Dfile.encoding=UTF-8 -jar installer.jar
-
インストール定義時: LICENSEファイルのエンコード形式を明示しない
<res id="LicencePanel.licence" src="LICENSE"/>
インストーラー実行時: システムプロパティfile.encodingに値ISO-8859-1を指定して実行する
java -Dfile.encoding=ISO-8859-1 -jar installer.jar
- [2] LicencePanel and HTMLLicencePanel - IzPack Documentation
- [3] [IZPACK-528]
The value of the encoding attribute of
element is still ignored
詳細は私的リポジトリ (r23) を参照。




