Quel outil d’installation (commercial ou gratuit) recommanderiez-vous pour remplacer InstallAnywhere en tant qu’installateur pour une application Java EE? Qu’aimez-vous spécifiquement à ce sujet et quels sont ses inconvénients?
Quelques exigences:
Edit: quelques points supplémentaires:
Edit : J’ai posté une réponse séparée sur ce que nous avons fini par choisir et pourquoi.
Dans ce cas, malheureusement, SO ne nous a pas beaucoup dit que nous ne savions pas déjà (et l’outil que nous avons finalement choisi n’a été mentionné dans aucune réponse). Cependant, je publie nos expériences ici, car elles pourraient être utiles par la suite.
Nous avons (rapidement) évalué les outils d’installation suivants, principalement en consultant leurs sites Web et en recherchant d’autres informations sur le Web: programme d’ installation , programme d’installation avancé , InstallBuilder BitRock , installation Inno , installeur VISE pour Windows , InstallShield , install4j , IzPack , NSIS , openInstaller , MSI Studio Scriptlogic , Smart Install Maker , Symantec Wise Installation Studio et WiX .
Nous avons éliminé la plupart d’entre eux dès le début et avons finalement sélectionné deux options pour une évaluation plus approfondie: BitRock InstallBuilder et install4j . Pour ces outils, nous avons téléchargé des versions d’évaluation et fait du prototypage, pour voir si les éléments les plus importants pour nous sont réellement pris en charge et à quel point il est facile ou difficile de faire fonctionner les choses.
Les deux options étaient bonnes dans beaucoup de choses (et les deux semblaient de bonnes alternatives à InstallAnywhere):
Dans les choses suivantes, install4j semblait mieux que BitRock pour nos besoins (beaucoup d’entre eux sont subjectifs, bien sûr, alors YMMV):
Donc finalement nous sums allés avec install4j . Voici quelques détails sur la raison pour laquelle il était impressionnant:
Je peux me porter garant pour izPack . Il est basé sur Ant, vous pouvez donc y installer une installation Ant et cette installation Ant peut contenir des tâches personnalisées et / ou des scripts écrits avec Ant build.xml (par exemple, Groovy, Beanshell ou tout autre langage de script compatible BSF). Il couvrira donc vos besoins personnalisables.
Je l’ai utilisé par le passé pour tout ce qui précède – décompression / services / code personnalisé. C’est multi-plateforme, même si je ne peux pas garantir cette instance spécifique ci-dessus (Windows 64 bits). Mais si cela fonctionne Java, ça devrait aller.
Le mal de tête est le JRE. Vous auriez évidemment besoin de JRE pour le faire fonctionner. Cependant, je pense que vous devriez pouvoir emballer et exécuter une installation JRE spécifique dans izPack.
Nous avons créé BitRock InstallBuilder , un outil d’installation multi-plateforme après quelques expériences frustrantes avec InstallAnywhere et spécialement son cousin (maintenant disparu) InstallShield MP. Plus de la moitié de nos clients utilisent notre outil pour créer des logiciels basés sur Java, mais l’outil est natif et non Java. Cela signifie que nous avons un certain nombre d’avantages tels que l’apparence native (y compris Vista, GTK, Qt, etc.) et qu’il n’est pas nécessaire de procéder à une auto-extraction avant l’installation (démarrage plus rapide, moins d’espace requirejs). Pour répondre à vos questions spécifiques:
Vous pouvez consulter certains de nos clients tels que MySQL, Samsung, Motorola, GitHub, etc. InstallBuilder est un produit commercial, mais nous proposons des licences gratuites pour les projets open source et des réductions pour les petites entresockets et les microISV.
Actuellement, nous utilisons GetDown pour gérer la dissortingbution de nos applications swing. Nous utilisons Tomcat pour dissortingbuer les mises à jour et GetDown pour télécharger ces mises à jour. Il est vraiment flexible et puissant, et bien meilleur que Java WebStart et parce qu’il produit une sum de contrôle pour les modifications, il enregistre la bande passante et télécharge les fichiers simplement modifiés.
Un bon tutoriel: http://www.hascode.com/2012/05/creating-updatable-java-applications-using-getdown-and-the-getdown-maven-plugin/
Site Web du projet: http://code.google.com/p/getdown/
Je veux juste append que mon entreprise utilise InstallAnywhere depuis environ 6 ans, mais nous avons décidé de continuer. La raison est double.
Tout d’abord, leurs prix sont des vols sur route absolus et les licences sont très ressortingctives par rapport aux concurrents directs comme INstall4J et BitRock.
Mon autre problème avec InstallAnywhere est que le produit n’est que très peu entretenu. J’utilise le produit depuis 6 à 7 ans à travers de nombreuses versions différentes et les bogues sont rarement corrigés et vous ne pouvez certainement pas vous attendre à de nouvelles fonctionnalités. Essentiellement, tout ce que vous pouvez espérer, c’est qu’ils ajoutent un support pour la nouvelle version de Windows / Mac à sa sortie. Leurs frais de support sont assez élevés, mais je n’ai jamais eu de demande d’assistance réellement mise en œuvre. Lorsque j’ai acheté le produit pour la première fois, je crois que c’était une société appelée ZeroG qui se concentrait uniquement sur ce produit. Ils ont en fait maintenu et amélioré le produit. À l’époque, c’était le seul vrai ticket et ils étaient au-dessus de la concurrence.
Il a ensuite été acquis par Macrovision, puis par Flexera. Depuis que ZeroG a vendu le produit, celui-ci a été un produit auxiliaire pour la société propriétaire et l’accent a été mis sur ce produit. Il semble qu’il ait été acheté davantage pour compléter une suite de produits plutôt que parce que l’entreprise souhaitait réellement maintenir le produit.
Attention, évaluez ces produits avec soin car vous pouvez y être lié. Nous aurions quitté le produit plus tôt, mais nous avons consacré autant d’efforts non seulement à l’installateur, mais aussi à la mise en place d’un système de mise à jour automatique basé sur les caractéristiques du produit. reproduire ceci dans un nouveau produit.
Juste ma prise, mais je ne recommanderais pas InstallAnywhere.
Le déploiement dans un environnement multi-plateforme est toujours une source importante de problèmes. Il pense que la solution optimale viserait la création de packages natifs pour toutes les plates-formes, telles que RPM, DEB ou MSI … celles qui pourraient également être installées sans surveillance.
Les développeurs doivent travailler à rendre l’application auto-réparable et s’exécuter sans installation.
Cela vous permettra de minimiser les efforts de déploiement.
Je sais que ce n’est pas une solution tout à fait car vous demandiez, mais parfois vous obtiendrez de meilleurs résultats.
N’oubliez pas que vous obtiendrez un service de mise à jour gratuit sous Linux si vous suivez ces instructions.
J’espère toujours que Microsoft appenda quelque chose de similaire à MSI (et cela ne vous obligerait pas à vous y inscrire). Pendant ce temps pour Windows, vous pouvez jeter un oeil à Google Updater qui vient de paraître en tant que source ouverte – http://code.google.com/p/omaha/
Ils ont sorti un produit similaire pour Mac OS http://code.google.com/p/update-engine/ mais ils regrettent de ne pas avoir pensé à créer un seul produit à partir de ces deux logiciels.
Vous pouvez essayer le plug – in SetupBuilder Gradle pour créer un programme d’installation * .msi natif avec un simple script de génération Gradle.
vous pourriez être intéressé par launch4j
Jonik, merci d’avoir posté des commentaires aussi détaillés sur votre expérience. Je voulais écrire une réponse car vous avez soulevé de bons points.
Après avoir satisfait à certaines exigences de base (ce que malheureusement InstallAnywhere ne fait plus), il n’ya pas vraiment de «mauvais» ou de «bons» outils, mais plutôt des outils mieux adaptés à certains projets. Il semble que vous ayez étudié attentivement toutes les options et install4j fonctionnera mieux pour votre projet. C’est probablement un bon choix, car vous avez une base de code Java existante de votre ancien programme d’installation que vous souhaitez réutiliser (même si je voudrais penser qu’une partie de ce code ne serait pas nécessaire avec InstallBuilder 🙂
En ce qui concerne InstallBuilder, nous prenons en charge la personnalisation de la séquence d’écran à l’aide de la balise
Enfin, en ce qui concerne les licences, notre modèle actuel ne nécessite pas d’acquérir des licences supplémentaires si ces programmeurs supplémentaires ne font que créer les programmes d’installation (ne pas les concevoir) ou acheter des licences supplémentaires pour les machines de construction ou d’continuous integration. Dans tous les cas, deux licences flottantes pour install4j sont plus chères qu’une licence complète pour Enterprise Site pour BitRock 🙂
Merci encore pour les commentaires
Je recommande de consulter cmInstall , disponible à l’ adresse http://sourceforge.net/projects/cminstall/
Il répond à presque tous vos besoins et est open source. De plus, je suis l’un de ses développeurs :).
[oui – ou vous pouvez le télécharger et le décompresser par programmation] Doit prendre en charge le regroupement d’une version spécifique de JRE; à tout le moins en incluant un ZIP à extraire
6. [no – il est nécessaire d’installer jdk 1.6, le support pour .exe ou .msi est prévu pour l’avenir] De préférence, ne dépend pas d’un JRE préinstallé (ou tout autre environnement d’exécution ou bibliothèque tiers) sur la machine cible; en d’autres termes, peut produire un fichier Windows .exe indépendant (ou .msi)
[yes] L’outil doit de préférence être multi-plateforme afin que le développement de l’installateur puisse se faire sous Linux, Windows ou Mac.
7. [non – le framework cminstall est “basé sur le développeur” – mais facile à utiliser.Il suffit de lire les tutoriels sur http://sourceforge.net/project/showfiles.php?group_id=250019&package_id=305489 et de voir comme il est facile de construire un installateur!] Devrait de préférence avoir une interface graphique décente pour mettre l’installateur ensemble. Une fois cela fait, il doit être possible d’ignorer l’interface graphique et de faire du programme d’installation une partie intégrante du processus de génération automatisé.
J’ai également consulté quelques-uns des installateurs multi-plateformes open source. Voici mon commentaire:
J’ai vu plusieurs personnes recommander IzPack , mais honnêtement, je ne sais pas si cela répond à vos exigences. C’est au moins gratuit 🙂
Sun propose un installateur open source:
OpenInstaller
Je suis sûr que toutes les fonctionnalités demandées sont sockets en charge.
Mais il me semble un peu trop difficile à configurer.
Mais devinez quoi: il a non seulement une interface graphique, mais aussi une interface de ligne de commande (pseudo-graphique).
Belles captures d’écran et informations ici .