それでは、スーパーWebアプリケーションをJavaで作成し、できるだけ多くの人にダウンロード、インストール、使用を開始してほしいと考えていますか? 一部はすべてのJavaプログラマーのみ、特に過去5年間J2EEの世界に住んでいた人にとっては、この世界の99.9%の人が「このWARニックネームをお気に入りのサーバーに閉じてください」という言葉を発見するかもしれません。空の音になります。 まあまあ、99.9%ではなく99.8%-か。
以下は、varnikから美しいWindowsインストーラーを作成する方法に関するチュートリアルの最初の部分です(はい、ほとんどの人は展開の言葉を知らないだけでなく、Windowsも使用します!)
問題の声明
だから私たちは持っています:
- Webアプリケーション自体はJavaで記述されています。 この場合、アプリケーションはmavenを使用して構築されていると想定されています(まだこれを行っていない場合は、強くお勧めします)。 アセンブリの結果として、warファイルを取得します(ok-完全なEARではありません-EARの場合は、別のサーバーをパックする必要があります)
- このアプリケーションはJetty 6.0.xサーバーの下で実行されると想定されています(そうでない場合は、再度-別のサーバーをパックする必要があります)
Windows Installerを使用してアプリケーションのインストールを作成します。 インストール中に、以下を行う必要があります。
- 標準アクションの実行(インストール先の確認、ライセンスの表示、進行状況の表示)
- 指定した場所にアプリケーション自体をインストールします
- サービスとしての起動を構成する
- デスクトップ上のアプリケーションのメインページにリンクを追加します(ユーザーが簡単にアクセスできるように)
使用するもの:
すべての製品はオープンソースです。
一部のポイントはここでは完全に開示されていない可能性があります-ご質問やご提案は大歓迎です このソリューションは、
EmForgeプロジェクトのインストーラーを作成するために使用されました-このプロジェクトはオープンソースであるため、そのソースから作業例を入手できます(たとえば、web-viewerを介して:
www.emforge.org/browser/EmForge/trunkまたは単にsvnからソースを取得することにより)リポジトリ
svn.emforge.org/svn/emforge/EmForge/trunkこのパートでは、起動の準備ができたアプリケーションでzipアーカイブを作成するプロセスを見ていきます。
さあ行こう...
Jettyを使用したアプリケーションのパッキング
まず、ユーザーにDeployという言葉を理解させないようにする必要があります。 いくつかの可能な解決策があります。たとえば、ハドソンの場合のように、単純なサーバーを戦争のニックネームに直接詰め込むことができます(興味深い解決策ですが、まだわかりません)。 別の方法で行きます-そして、戦争のニックネームを実行するように設定されたJettyを配置するZipアーカイブを作成します。
アイデアはこのブログから取られました:
blog.devspan.com/2008/02/creating-distributable-war-project-with.html-ここでは主なアイデアのみを説明します(必要に応じて-教えてください-私はもっと詳しく
書きます):
- Mavenによって組み立てられたWebプロジェクトがあります(この場合はhttp://www.emforge.org/browser/EmForge/trunk/emforge-web)
- 新しいランチャープロジェクトを作成します。 プロジェクトの構造と必要なファイルは、プロジェクトのファイルに浸漬するだけで、emforge-launcherからコピーできます: www.emforge.org/browser/EmForge/trunk/emforge-launcher
- このプロジェクトでmaven-assembla-pluginを構成して、varnikおよび必要なjettyライブラリをmavenリポジトリから取得し、「正しい」場所に配置するようにします
- まず、Webプロジェクトでmvn clean installを実行して、mavenがローカルリポジトリにプロジェクトを収集して配置するようにします
- 次に、ランチャープロジェクトでmvn clean assembly:assemblyを実行します -その結果、必要なzipを取得します
その結果、桟橋とアプリケーションが配置されるzipを取得します。 zipの構造はおよそ次のようになります。
- etc Jetty
- jetty.xml
- jetty-win32-service.xml
- webdefault.xml
- lib , jetty
- wrapper.dll
- wrapper-3.2.0.jar
- jety-6.1.14.jar
- jetty-util-6.1.14.jar
- jetty-win32-service-java-6.1.14.jar
- servlet-api-2.5-6.1.14.jar
- start-6.1.14.jar
-logs
- webapps
- root
Jetty-Service.exe jetty
jetty-service.conf
確認してください:
- jetty-service.confには、サービスの名前が含まれている必要があります。 デフォルトでは、Jettyになります-しかし、確かに何か他のものが必要です
- また、 jetty-service.confにライブラリとログへの正しいパスが含まれていることを確認します
- jetty.xmlで、サービスが起動されるポートを確認します-デフォルトでは8080ですが、このポートは非常に広く使用されているため、他のポートを使用することをお勧めします
- ルートディレクトリにはWebアプリケーションが含まれている必要があります。つまり、WEB-INFディレクトリはルートの直下にある必要があります。
さて、これですべてです。 原則として、これは停止することができます-怠zyなユーザーは、zipをダウンロードして解凍し、run.batまたはrun.shを使用してアプリケーションでサーバーを起動することはできません
次のシリーズでは、怠zyなユーザー向けのソリューションについて説明します。