単純なJava Webアプリケーションのインストール(パート2)

実際、これはJavaに関するものではありません。 (たとえば、最初の部分で作成された)いくつかのプログラムでzipがあり、そのためにmsiを作成するとします(Windowsインストーラーを使用したインストール用)。 それは素晴らしいものかもしれません-桟橋+あなたの戦争、Apacheとphp-ha-この場合、それはもう重要ではありません。 これが「何か」であることが重要です-インストール後にサービスとして実行する必要があること



カットの下でWiXでそれをする方法



画像







可能な代替案



WiXの周りのタンバリンとダンスを始める前に、私が考えた代替案について話すのは私の義務だと思います-そしてあなたにぴったりかもしれません



Java用WItemインストーラー


ここでwww.witemsoft.com/forjavaを使用すると、java-webアプリケーションのインストーラーを作成できる、非常にシンプルで最も重要な無料のプログラムを見つけることができます。varnikで設定し、[Web application]ボックスをチェックするだけです。置く。



1つの問題 -Jetty 4ディストリビューションに組み込まれています(プログラムはかなり古い)-これは非常に古く、私の場合はアプリケーションを実行できませんでした。 これを適切に修正できませんでした(プログラムはオープンソースではありません)。



しかし、それは残念です-原則として、このプログラムは必要なものを正確に実行しました-すべてがシンプルで明確です。



Java用の高度なインストーラー


別の候補: www.advancedinstaller.com/java.html



使用するのはより困難ですが(それでも非常にシンプルですが)、はるかに強力です。 すべてが便利なウィザードで行われます。 突堤を自動的に追加します-方法がわかりません-したがって、これを自分で行う必要があります(たとえば、最初の部分で説明したように)。

Javaプログラムの場合、インストールされているJavaのバージョンの自動検証、必要に応じてその自動ダウンロードおよびインストールなどの機能を追加できます。



無料版は多くのことができます-そして私が言ったように-それは比較的使いやすいですが、-サービスをインストールする-Profiバージョンからのみ-249ドル(イデオロギー上の理由でウェアーズのバリアントを考慮しません)



一般的に-あなたが249ドルを持っている場合-あなたはそれ以上読むことができません。 Profiバージョンの他の機能を必要としないという条件でこのお金を使ってすみませんでした-そして、サービスを作成するためだけに250ドルを支払うのはやり過ぎだと思われました



WiXとは何ですか?



したがって-WiX - wix.sourceforge.net -XMLファイルからMSIを作成できるコマンドラインツールのセット

このプロジェクトについて一言。 WiXプロジェクトは、私が間違えなければ-MicrosoftがOpen-Sourceに寄付し、SourceForgeのホスティングに置いた最初のプロジェクトです(はい!そしてそれは起こります!)。 残念ながら、プロジェクトとドックに関する情報はほとんどありません-ロシア語ではさらに少ない-ここでより詳細に焦点を当てるので



このプロジェクトは.NETに実装されています-そのため、Windowsが必要です(モノで試してみませんでした)-そして、残念ながら、.NET runetime。



さあ、行こう



もう一度インストール要件について



もう一度、結果のインストーラーから必要なものを更新します。





もちろん、もっと多くのこと-誰もいない場合はJREの自動インストール、サービスが実行されているポートの設定など-が必要です。



最初のWiXファイル



うーん...残念ながら、XMLハブポストにソースを挿入する方法を見つけられませんでした-それはそれらを強くひねります:((これを正しく行う方法についてのアドバイスがうれしいです)

そのため、元の記事へのリンク(以前に英語で書かれた)を提供する必要があります-ここにコメントがあります。



したがって、作業を開始する最も単純なwixファイルは次のとおりです。www.emforge.org / wiki / Windows+Installer+For+WAR#section-Windows+Installer+For+WAR-FirstWiXFile



質問の代わりに生成されたGUIDを書き留めて、EmForgeを製品名に置き換え、EmDev Limitedを会社名に置き換えて、最初のスタブの準備ができました。 これはまだ実際のインストールではありませんが、次のとおりです。



クラスを揚げる



後で見るように、WiXはディレクトリに対して非常に奇妙に動作します。 したがって、アプリケーション内のディレクトリが少ないほど、簡単になります。 さらに、さらなる開発により、フォルダの移動はインストールに劇的な影響を与える可能性があります。 Webアプリケーションをインストールする場合、WEB-INF / classesディレクトリに多くのものがあります。 私は、他の多くのプログラマーと同じように、「リファクタリング」をしたい-クラスをあるパッケージから別のパッケージに移動する-絶対に考えたくない-これが私のインストールにどのように影響するのか。 なぜなら-ただ友好的なアドバイス-すべてのクラスをjarでパックし、それをWEB-INF / libに入れる-それから明確な良心をもってWEB-INF / classesフォルダーを削除する



フォルダーダンス



今、私たちは言う必要があります-何を届けたいのか。 それは-より簡単な-いくつかのディレクトリを指して言った-それはすべて、サブディレクトリとともに-私はインストールで見たいと思います(上記のプログラムはこのようなことをします)。 しかし、残念ながら、WiXはWindowsインストーラーでかなり低レベルのインターフェイスを提供しているようで、その方法はわかりません。

私が理解しているように、インストールには複数のコンポーネントが含まれており(論理的に)、各コンポーネントには複数のファイルを含めることができますが、フォルダは含めることができません(少なくとも私にとっては)。 したがって、インストール内の各ディレクトリに対して、個別のGUIDを設定する必要のある個別のコンポーネントを作成する必要があります(クラスはまだ揚げていません。各パッケージ用)



幸いなことに、まだいくつかの自動化ツールがあります-これは獣脂プログラム(wix 2.0に含まれています)です。

#PathToWix\tallow -dc:\Path\To\Your\Distro > tallow.wxs







PathToWiXはWiXをインストールしたパスで、c:\ Path \ To \ Your \ Distroはインストールするファイルがあるパスです

その結果、次のようなファイルが得られます

ここで、GUIDを生成し、すべてのPUT-GUID-HEREの代わりにそれらを挿入するだけです(なぜ牛乳はこれを自動的に行うことができません-わかりません!) (これにより、インストール中にインストールパスを選択できるようになります)



機能の説明



1つのMSIは、多数のコンポーネントを含む複数の機能をインストールできます。 この場合、1つの機能があり、すべてのDirectoryタグの後に説明する必要があります。これは、tallowが生成したすべてのコンポーネントを配置する場所です。 このようなもの



これですべてです-最初のインストールの準備ができました-MSIを作成します。

# candle emforge.wxs

# light -out EmForge.msi emforge.wixobj







私たちはそれを開始します-さらに質問することなく、すべてを配信する必要があります-そして(必要に応じて)-出発します。



サービスとリンクの設定



次に、サービスを構成して開始するようにインストールを構成します。 これを行うには、Jetty-Service.exeを別のコンポーネントに取り込み、 ここに示す方法と同じ方法で構成を記述し、新しいコンポーネントを機能に追加します。

ここではすべてが明らかです(私は願っています)-ServiceInstall-サービスがインストールされ、ServiceControl-インストールによってサービスを開始する必要があり、アンインストールするときは停止してアンインストールする必要があると言います。

ボーナスとして、IniFileは必要な場所にリンクを作成します。



大きいグヤ



インストールがそれほど短く見えないように-GUYAを追加します(間違えないでください)- ここに例を示します

そして、msiをビルドします

# candle EmForge.wxs

# light -out EmForge.msi EmForge.wixobj PathToWix\wixui.wixlib -loc PathToWix\WixUI_en-us.wxl







(実際、すべてがC ++と非常によく似ています-Candle-Compiler、Light-Linker、wxs-source、wixobj-object、wxl-lib)

そして、インストールは非常に見苦しくなります!



免許



wixがデフォルトで表示するライセンスを独自のものに置き換えることは自然な願望です-すべてが簡単です-他のファイルと同じ場所に必要なテキストでLicense.rtfを入れてください-そして光がそれを選びます



合計



まあ、それだけです。 すべてが正しく行われた場合、結果のmsiは割り当てられたすべてのタスクを完了する必要があります。 理想的には、2〜3時間以上かかることはありません(良心があれば、節約した250ドルをもっと便利なものに費やすことができます)



不明な点がある場合-いつでも質問をすることができます-私は助けようとします。 EmForge wixファイルを例として使用できます-完全なソースコードはこちら



All Articles