Membuat Installer dengan IzPack
Menggunakan izPack
Setelah kita selesai membuat aplikasi, what next? Tentunya mendistribusikan pada orang yang membutuhkan. Bagaimana caranya agar aplikasi kita mudah digunakan? Langkah pertama adalah dengan cara memudahkan proses instalasi. Dalam tulisan ini, kita akan mempelajari cara menggunakan izPack, framework untuk membuat installer aplikasi, sehingga menginstal aplikasi akan semudah menekan tombol Next.
Para programmer tentunya sudah familiar dengan berbagai framework installer. Ada yang komersil seperti InstallShield, dan ada juga yang gratis seperti NSIS dan izPack. Kelebihan izPack adalah dia berbasis Java, tidak seperti NSIS yang cuma bisa jalan di Windows.
Langkah pertama, mari kita download izPack. IzPack disediakan sebagai installer, sehingga kita harus menginstalnya dulu sebelum bisa digunakan.
Selanjutnya, mari kita lihat struktur folder project kita yang ingin dibuatkan installernya. Struktur folder saya seperti ini:
Setelah terinstal di komputer pengguna, saya ingin foldernya seperti ini:
Perhatikan bahwa folder src tidak perlu diikutkan. Pengguna dapat memilih apakah mau menginstal source code atau tidak. Jadi, folder source code adalah optional. Folder dokumentasi dan plugin tambahan juga biasanya diinstal secara optional.
Berikutnya, tentukan screen yang akan tampil selama proses instalasi, biasanya adalah :
- Salam pembukaan, menyatakan kepada pengguna bahwa proses instalasi akan dimulai.
- Informasi aplikasi, menjelaskan tentang aplikasi dan kegunaannya.
- License Agreement
- Pemilihan paket yang akan diinstal. Di sini pengguna dapat memilih apakah dia akan menginstal paket optional atau tidak.
- Tujuan instalasi. Pengguna menentukan di folder mana dia akan menginstal.
- Proses instalasi. Menunjukkan kemajuan proses instalasi. Biasanya menggunakan progress bar.
- Instalasi selesai. Menampilkan pesan sukses atau gagal.
Kerangka dari konfigurasi installer kita adalah sebagai berikut :
<installation version="1.0">
<info> </info>
<guiprefs> </guiprefs>
<locale> </locale>
<resources> </resources>
<panels> </panels>
<packs> </packs>
</installation>
Isi dari tag info adalah sebagai berikut
<info>
<appname>PlayBilling</appname>
<appversion>1.1-RC3</appversion>
<authors>
<author name="Endy Muhardin" email="endy@artivisi.com"/>
<author name="Anton Raharja" email="anton@ngoprek.org"/>
</authors>
<url>http://playbilling.sourceforge.net</url>
<javaversion>1.5.0</javaversion>
</info>
Bagian guiprefs menjelaskan tampilan yang akan digunakan. Kita akan pakai native saja, sesuai OS, supaya tampak alami. Kalau mau, kita dapat memilih beberapa tampilan Look & Feel yang tersedia.
<guiprefs width="800" height="600" resizable="yes"/>
Berikutnya, pilihan bahasa instalasi. Untuk mudahnya, gunakan bahasa Inggris saja.
<locale>
<langpack iso3="eng" />
</locale>
Untuk bagian resource, kita perlu mendefinisikan file-file yang dibutuhkan installer. File-file ini harus sudah ada.
<resources>
<res src="installer/application-description.html" id="HTMLInfoPanel.info"/>
<res src="installer/gpl.txt" id="LicencePanel.licence"/>
</resources>
Tentukan urutan screen seperti sudah dijelaskan di atas.
<panels>
<panel classname="HelloPanel"/>
<panel classname="HTMLInfoPanel"/>
<panel classname="LicencePanel"/>
<panel classname="PacksPanel"/>
<panel classname="TargetPanel"/>
<panel classname="InstallPanel"/>
<panel classname="SimpleFinishPanel"/>
</panels>
Bagian packs menentukan folder-folder yang akan diinstal. Sintaksnya mirip dengan Ant.
<packs>
<pack name="Base" required="yes">
<description>Base System files</description>
<fileset dir="." targetdir="$INSTALL_PATH">
<include name="ext/jetty/*"/>
<include name="webapp/**/*"/>
<include name="*.sh"/>
<include name="*.bat"/>
</fileset>
</pack>
<pack name="Source" required="no">
<description>Source code and test files</description>
<fileset dir="." targetdir="$INSTALL_PATH">
<include name="src/**/*"/>
<include name="lib/**/*"/>
<include name="*.xml"/>
</fileset>
</pack>
</packs>
Variabel $INSTALL_PATH akan diisikan sesuai folder tujuan yang dipilih pengguna.
Ok, file konfigurasi installer kita sudah selesai. Sekarang tinggal diotomasi sehingga bisa dipanggil lewat Ant. Ada beberapa informasi yang dibutuhkan oleh izPack, yaitu:
- lokasi konfigurasi instalasi (file xml yang baru saja kita buat)
- nama file installer yang akan dihasilkan (misalnya MyProject-installer.jar)
- jenis instalasi (desktop atau web)
- base folder (folder acuan untuk menentukan lokasi relatif folder yang lain)
- lokasi instalasi izPack
Berikut adalah target untuk Ant
<taskdef name="izpack"
classpath="${izpack_install_dir}/lib/compiler.jar"
classname="com.izforge.izpack.ant.IzPackTask"
/>
<target name="build-installer">
<izpack input="installer/playbilling-installer.xml"
output="dist/playbilling-installer.jar"
installerType="standard"
basedir="."
izPackDir="${izpack_install_dir}"
/>
</target>
Setelah Ant target dijalankan, kita akan mendapatkan file playbilling-installer.jar di dalam folder dist. Mari kita coba jalankan file installer tersebut.
java -jar dist/playbilling-installer.jar
Kita akan disodori tampilan selamat datang
Klik Next, dan kita akan melihat keterangan tentang PlayBilling. Keterangan ini langsung dicopy-paste dari homepage PlayBilling
Next lagi, dan muncullah license agreement, yaitu GPL, yang diambil langsung dari website GPL.
Screen selanjutnya adalah pilihan paket yang akan diinstal. Perhatikan bahwa paket wajib diburamkan dan tidak bisa diklik.
Setelah itu, kita akan ditanya lokasi instalasi.
Pilih lokasi yang sesuai, kemudian Next. Instalasi akan segera dimulai.
Sukses … !
Sebagai bonus, izPack juga akan membuatkan Uninstaller. Coba jalankan
java -jar /home/endy/PlayBilling/Uninstaller/uninstaller.jar
Klik OK, dan aplikasi akan dihilangkan dari komputer Anda.
Selamat mencoba. Semoga bermanfaat.