Packaging de IzPack dans un build.xml permettant la création d'un installateur (exe ou jar) des projets créés avec esup-commons.
A ce jour, cet installateur a plutôt vocation à être utilisé pour l'installation d'une version de démonstration seulement de l'application.
Suivant les besoins, on package un certain nombre de composants supplémentaires à l'application cible :
- Apache Tomcat
- OpenDs (comme serveur ldap)
- Derby (comme base de données)
- ...
La création de l'exécutable Windows nécessite l'utilisation de 7za (de 7-Zip). Cet outil est disponible aussi bien sous Linux que sous Windows.
Notez par ailleurs que l'ensemble de ce build.xml est utilisable aussi bien sous Windows que sous Linux.
On récupère le projet esup-commons-izpack via subversion (cf
l'entrepôt subversion de esup-izpack. On pointera via svn un répertoire tagué de l'entrepôt.
esup-izpack vous donne toute une structure de fichiers/répertoires vous permettant via un build.xml de générer par ANT un installateur sous forme de JAR ou sous forme d'excéutable windows.
Vous devez modifier, c'est à dire personnaliser un certain nombre de fichiers de esup-commons-izpack :
build.properties et esup-download
Dans esup-download vous devez placer la distribution de votre application.
Il faut également modifier le build.properties en fonction des commentaires donnés.
esup-custom
Tout le répertoire esup-custom est à reprendre: il correspond aux personnalisations des fichiers de configurations de votre application. Par défaut vous avez l'exemple de esup-example-0.17.3 sur lequel vous devez vous appuyer.
Vous y retrouverez les paramètres de la base de données dans properties/dao/hibernate/hibernate.cfg.xml (notez qu'il ne faut pas oublier de mettre en place également le jar de derby webapp/WEB-INF/lib/derby.jar
Les paramètres Ldap sont donnés dans properties/ldap/ldap.xml
Notez la possibilité d'utiliser dans vos fichiers de configurations des variables IzPack qui seront positionnées lors de l'installation par IzPack (la variable la plus utile est celle qui correspond au répertoire d'installation : $INSTALL_PATH), voir le paragraĥe ci-après [dans EsupExample, on utilise cela dans le domain.xml].
esup-izpack
Le readme, les auteurs, le logo c'est à dire les informations qui s'affichent dans l'installateur sont à modifier/personnaliser ici.
Le fichier install.xml est le point d'entrée d'IzPack. N'hésitez donc pas à vous appuyer sur la documentation d'IzPack que vous pouvez consulter en installant une distribution IzPack. Cependant le install.xml reprend des besoins jugés comme standard. Il faut cependant le modifier pour faire référence non plus à EsupExample et ses répertoires associées mais à votre application. Également si vous n'utilisez pas OpenDs, vous devez ici supprimer ce qui correspond à l'installation d'OpenDS (dans shortcutSpec.xml également).
C'est dans install.xml que vous spécifiez également les fichiers que doit parser IzPack pour résoudre les variables du type $INSTALL_PATH (cf ci-avant) [dans EsupExample, on utilise cela pour le fichier domain.xml]..
demo-esup-exe
Il faut ici modifier le fichier config.txt ainsi que le fichier build/launcher.ini dans lequel vous donnez le nom du jar à utiliser dans l'exécutable windows.
prebuild
Le répertoire prebuild/lisezmoi est une page d'aide proposée à l'utilisateur via raccourci windows pour expliquer à celui-ci comment lancer son application et s'y connecter.
Le répertoire prebuild/webapps/ROOT est le contexte racine de Tomcat : l'idée ici est de donner des informations autour de l'applciation en elle-même (noms d'utilisateurs, mots de passe etc). Notez que l'on se garde ainsi la possibilité d'installer plusieurs applications en même temps par le même installeur sur un même tomcat : c'est ce qui a été par exemple fait pour l'installateur de démo d'
ORI-OAI.
=> ces 2 répertoires sont donc également à personnaliser.
my-esup-izpack
Ce répertoire ne sert pas ici : il sert dans l'utilisation de esup-izpack via EsupCommons, confère le paragraphe qui suit.
L'idée à terme est que esup-commons intègre directement un build-izpack.xml pour appel de esup-izpack depuis le build de esup-commons.
Il faut que la distribution de esup-izpack soit présente au même niveau que votre application (tout comme l'est esup-commpons) : le répertoire doit s'appeler esup-izpack.
Dans votre application EsupCommons, vous copiez/collez [pensez à le déconnecter du svn de esup-izpack ou faire un export simplement] le contenu du répertoire my-esup-izpack à la racine de votre projet, c'est à dire le fichier build-izpack.xml ainsi que le répertoire izpack. Vous pouvez renommer le projet dans build-izpack.xml (donné par défaut à EsupExample-izpack). C'est ainsi ce répertoire qui contiendra vos personnalisations de esup-commons-izpack (vous ne devez alors pas toucher au répertoire du projet esup-izpack) que vous maintiendrez à jour dans l'entrepôt subversion de votre propre projet. Pensez donc par exemple à modifier plutôt le fichier build.properties du répertoire izpack situé maintenant dans votre projet (pour donner l'adresse de 7za entre autre). Référez vous au paragraphe ci-avant pour connaître les modifications que vous devez apporter à ces différents fichiers.
Ensuite, au lieu d'utiliser le build-devel.xml de votre projet, utilisez build-izpack.xml (qui importe build-devel.xml) qui a une tâche supplémentaire _make-izpack (qui lance la tâche izpack) !
Pensez à compiler l'ensemble avec une version du JDK la plus ancienne possible (vous aurez ainsi plus de chances que la JRE installée sur le poste de l'utilisateur convienne). On utilisera pour EsupExample un JDK 1.5