3

Linux(および場合によってはWindowsやその他のOS)でJavaサーバープロセスをデーモンサービスとして実行するためのツールを探しています。本番環境に対応したスクリプトを作成して構成を起動する方法に関しては、ベストプラクティスを探しています。

私は、Apache Maven、またはApache ANT + Ivyのようなものを使用して、ビルドプロセスを管理し、外部の依存関係を管理し、アーティファクトとアセンブリをビルドする、プロジェクトのビルドに関するベストプラクティスに精通しています。

コンパイルされたすべてのコードと依存関係とともに、構成スクリプトと起動スクリプトを含むプロジェクトのアセンブリを作成する場合、最良の選択が何であるかがわかりません。例として見ることができる、サービスラッパーと構成スクリプトをビルドプロセスにバンドルする優れたオープンソースプロジェクトはありますか?

Jetty Launchプラグインを使用してMavenを使用してWebアプリケーションを実行し、Terracotta Mavenプラグインを使用して複数のJVMクラスター化サーバーノードをテストし、Mavenのexec:javaを使用してカスタムJavaサーバーを実行することができましたが、そうではありませんその容量でMavenを使用することは、本当に「本番」品質であることを確認してください。また、本番サーバーは、ソースからサーバーを構築し、潜在的に利用できないサーバーから依存関係をダウンロードすることに依存しています。

Javaサービスランチャーソリューションで私が探している可能性のあるものは次のとおりです。

  1. LinuxサービスまたはWindowsサービスプロセスとして実行する必要があります
  2. MavenプラグインまたはAntスクリプトを使用してビルドでき、構成ファイルとスクリプトを処理できます
  3. ApacheAntからのすべてのプロジェクトの依存関係を含めることができるはずです
  4. 完全なJavaWebアプリケーションサーバー(Jetty 7など)をプルして、カスタムWebアプリケーションの戦争で構成できる必要があります
  5. 標準のJavaデーモンサービス(カスタムJavaサーバー)を処理できる必要があります

私が見ているオプションのいくつかは、Mavenappassemblerプラグインで使用されるJavaServiceWrapperです。

また、Mavenのアセンブリプラグインとカスタムアセンブリ記述子を使用すると、ビルド出力を調整できます。

4

2 に答える 2

3

あらゆる種類のLinuxサービスを実装するための推奨される(別名「ベストプラクティス」)方法は、サービスを開始、停止、再起動して、に配置できるシェルスクリプトを作成すること/etc/init.dです。次に、関連する「rc。*」ディレクトリから適切にシンボリックリンクを追加します。「init(8)」、「chkconfig(8)」などについては、Linuxの「man」エントリを参照してください。

于 2009-08-11T06:52:15.267 に答える
3

JavaServiceWrapperは非常に一般的なようです。私はそれが少数の人々、特にネクサスで使用されているのを見ました。

于 2009-08-11T18:07:49.753 に答える