Java EEアプリケーションのインストーラーとして、 InstallAnywhere を置き換えることをお勧めする(商用または無料の)インストーラーツールはどれですか。それについてあなたは特に何が好きですか、そしてその欠点は何ですか?
いくつかの要件:
編集:さらにいくつかのポイント:
この場合、残念ながら、SOは、私たちがまだ知らないことをあまり知らせませんでした(実際、最終的に選択したツールは、どの回答にも記載されていませんでした)。しかし、私は後で他の人に役立つかもしれないので、ここに私たちの経験を投稿してください。
次のインストーラーツールを(迅速に)評価しました。ほとんどの場合、それらのWebサイトを見て、Web上の他の情報を参照しています: 実際のインストーラー 、 高度なインストーラー 、 BitRock InstallBuilder 、 Inno Setup 、 Install Creator 、 Installer VISE for Windows 、 InstallShield 、 install4j 、 IzPack 、 [〜#〜] nsis [〜#〜] 、 openInstaller 、 Scriptlogic MSI Studio 、 Smart Install Maker 、 Symantec Wise Installation Studio 、および WiX 。
私たちは早い段階でそれらのほとんどを選別し、より詳細な評価のための2つのオプションを最終的にリストに入れました:BitRock InstallBuilderおよびinstall4j。これらのツールについて、評価版をダウンロードし、プロトタイピングを行って、私たちにとって最も重要なものが本当にサポートされているかどうか、および動作させるのがどれほど簡単か難しいかを確認しました。
どちらのオプションも多くの点で優れていました(両方ともInstallAnywhereの優れた代替手段のように思われました)。
次の点で、install4jは私たちのニーズに対してBitRockよりも優れているように見えました(もちろん、これらの多くは主観的であるため、YMMVです)。
したがって、最終的にはinstall4jを使用しました。印象的だった理由の詳細を次に示します。
私たちは BitRock InstallBuilder を作成しました。これは、InstallAnywhereと、特にその従兄弟(現在は機能しなくなった)InstallShield MPでのイライラした経験の後にクロスプラットフォームのインストールツールです。クライアントの半数以上がこのツールを使用してJavaベースのソフトウェアをパッケージ化していますが、このツールはJavaベースではなくネイティブです。つまり、ネイティブのルックアンドフィール(Vista、GTK、Qtなどを含む)などの多くの利点があり、インストールの前に自己解凍を行う必要がない(起動が速く、スペース要件が少ない)ため、カップルについて言及する必要があります。特定の質問に答えるには:
MySQL、Samsung、Motorola、GitHubなどの一部の customers をご覧ください。InstallBuilderは商用製品ですが、オープンソースプロジェクトには無料のライセンスを提供しており、小規模ビジネスやmicroISV。
私の会社ではInstallAnywhereを約6年間使用していますが、次に進むことにしました。その理由は2つあります。
まず、彼らの価格設定は絶対的な高速道路の強盗であり、ライセンスはINstall4JやBitRockのような直接の競合他社に比べて厳しく制限されています。
InstallAnywhereに関する私のもう1つの問題は、製品のメンテナンスが最小限に抑えられていることです。私は多くの異なるバージョンを通じて6〜7年間製品を使用しており、バグはめったに修正されておらず、新しい機能を期待することはできません。基本的に期待できるのは、新しいバージョンのWindows/Macのサポートが追加されることです。サポート料金はかなり高額ですが、実際にサポートリクエストを実施したことはありません。私がこの製品を最初に購入したとき、それはこの製品だけに焦点を合わせていたZeroGという会社からのものだったと思います。彼らは実際に製品を維持し、改善しました。当時はそれが唯一の真のチケットであり、彼らは競争を飛び越えていました。
その後、MacrovisionとFlexeraが買収しました。 ZeroGがこの製品を販売して以来、それは所有会社にとっては補助的な製品であり、その焦点は不十分でした。同社が実際に製品を維持したかったのではなく、一連の製品を完成させるために購入されたようです。
注意が必要です。これらの製品は、あなたと結びつく可能性があるため、慎重に評価してください。私たちはもっと早く製品を離れたはずですが、インストーラーだけでなく、製品の機能/制限に基づいて自動更新スキームを設定することに多くの労力を費やしました。これを新製品で再現。
私の見解ですが、InstallAnywhereはお勧めしません。
izPack を保証できます。これはAntベースであるため、Antインストールをパッケージ化でき、Antインストールには、Ant build.xml内に記述されたカスタムタスクやスクリプトを含めることができます(たとえば、Groovy、Beanshell、またはBSF対応のスクリプト言語を使用)。したがって、カスタマイズ可能な要件をカバーします。
私は過去に上記すべて-unzipping/services/custom code-に使用しました。これはマルチプラットフォームですが、上記の特定のインスタンス(64ビットWindows)については保証できません。ただし、Javaを実行している場合は問題ありません。
頭痛の種はJREです。これを実行するには、明らかにsomeJREが必要です。ただし、izPack内の特定のJREインストールをパックして実行できるはずです。
現在、スイングアプリケーションの配布を処理するために GetDown を使用しています。 Tomcatを使用して更新を配布し、 GetDown を使用してそれらの更新をダウンロードします。これは本当に柔軟で強力で、Java WebStartよりもはるかに優れています。変更のチェックサムを生成するため、帯域幅を節約し、変更されたファイルのみをダウンロードします。
プロジェクトのウェブサイト: https://github.com/threerings/getdown
マルチプラットフォーム環境での展開は、常にトラブルの大きな原因です。最適なソリューションは、RPM、DEB、MSIなどのすべてのプラットフォーム用のネイティブパッケージの作成を対象とすると考えられます。無人でインストールすることもできます。
開発者は、アプリケーションを自動修復し、インストールなしで実行できるようにする必要があります。
そうすることで、展開作業を最小限に抑えることができます。
私はこれがあなたが尋ねるような完全な解決策ではないことを知っていますが、時々あなたはこの方法でより良い結果を得るかもしれません。
これらをフォローすると、Linuxで無料のアップデートサービスを利用できることを覚えておいてください。
私はまだマイクロソフトがMSIに似たものを追加することを望みます(そしてそれはあなたがそれらに登録することを要求しないでしょう)。一方、Windowsの場合は、オープンソースとしてリリースされたばかりのGoogleアップデータを確認できます- http://code.google.com/p/omaha/
彼らはMac OS用の同様の製品をリリースしました http://code.google.com/p/update-engine/ しかし、これら2つから1つの製品を作成することを考えていなかったのは悲しいことです。
SetupBuilder Gradle Plugin を試して、シンプルなGradleビルドスクリプトでネイティブ* .msiインストーラーを作成できます。
また、オープンソースのマルチプラットフォームインストーラーのいくつかを公開しました。これが私のコメントです:
あなたは興味があるかもしれません launch4j
http://sourceforge.net/projects/cminstall/ にあるcmInstallを参照することをお勧めします
ほぼすべての要件を満たし、オープンソースです。さらに、私はその開発者の1人です:)。
[はい-または、プログラムでダウンロードして解凍することができます]特定のバージョンのJREのバンドルをサポートする必要があります。少なくとも、抽出するZipを含めることで
6. [いいえ-jdk 1.6がインストールされている必要があります。将来的には.exeまたは.msiのサポートが計画されています]ターゲットマシンにプリインストールされているJRE(または他のサードパーティのランタイム環境やライブラリ)に依存しないことが望ましいです。つまり、独立したWindows .exe(または.msi)を生成できます。
[yes]インストーラーの開発をLinux、Windows、またはMacで実行できるように、ツールはクロスプラットフォームであることが望ましいです。
7. [いいえ-cminstallフレームワークは「開発者ベース」ですが、使いやすいです。チュートリアルは http://sourceforge.net/project/showfiles.php?group_id=250019&package_id=305489 からお読みください。そして、インストーラーを構築するのがいかに簡単か見てください!]できれば、インストーラーを組み立てるためのまともなGUIが必要です。ただし、それが完了したら、GUIをスキップして、インストーラーのビルドを自動ビルドプロセスの一部にすることが可能でなければなりません。
ジョニック、あなたの経験のそのような詳細なフィードバックを投稿してくれてありがとう。あなたはいくつかの良い点を上げたので、私はフォローアップの回答を書きたかったのです。
特定の基本要件が満たされると(残念ながら、InstallAnywhereはこれ以上機能しなくなります)、実際には「悪い」ツールや「良い」ツールではなく、一部のプロジェクトにより適したツールがあります。すべてのオプションを注意深く調査したようで、install4jはプロジェクトに適しています。以前のインストーラーから再利用したい既存のJavaコードベースがあるので、これはおそらく良い選択です(ただし、InstallBuilderではそのコードの一部は不要になると思いますが、 )
InstallBuilderに関しては、<insertBefore>タグを使用して画面シーケンスをカスタマイズすることをサポートしています(おそらくこれをより適切に文書化する必要があります)。 JREをバンドルするのも簡単です(ほとんどの場合、Java /フォルダーを含むだけです)が、私はあなたの批判は妥当だと思います。サポートされているすべてのプラットフォームでのドラッグアンドドロップ。ロードマップには、あなたが言及している領域のGUIを改善しているところがあります。おもしろいのは、多くのお客様がXML形式を使いやすいため、プログラミングエディタ(HTMLを編集しているかのように)を使用して編集することを好むということです。
最後に、ライセンスに関して、現在のモデルでは、追加のプログラマーがインストーラーをビルドするだけ(設計ではない)である場合、またはビルドまたは継続的インテグレーションマシン用に追加のライセンスを購入する場合、追加のライセンスを購入する必要はありません。いずれにせよ、install4jの2つのフローティングライセンスは、BitRockの完全なエンタープライズサイトライセンスよりも高価です:)
フィードバックをありがとう
複数の人が IzPack を推奨するのを見てきましたが、それがあなたの要件を満たしているかどうかは正直わかりません。それは少なくとも無料です:)
Sunは、オープンソースのインストーラーを提供しています。
リクエストされた機能はすべてサポートされていると思います。
しかし、私には設定が少し難しいようです。
しかし、何を推測しますか?GUIだけでなく(疑似グラフィック)CLIも備えています。
素敵なスクリーンショットと情報 ここ 。