2012-01-12 13 views
4

私はJavaでサーバーを書いています。サーバーの開発をサポートするために、main()メソッドを持ついくつかのクラスを用意しています。コマンドラインから開発ツールとして実行し、診断などを行い、クライアント接続をシミュレートし、残りのモジュールとは独立してモジュールを実行しますサーバ。現在、これらのクラスはメインサーバープロジェクトの一部です。複数のメインエントリポイントと実行可能ファイルを持つStucture for Javaプロジェクト?

これらの複数の実行可能なツールをサポートするためにプロジェクトを構成するには、どのような方法が最適ですか?これらのシミュレーション/ロード/診断ツール用に別々のプロジェクトを作成するか、メインサーバープロジェクトにそれらを保持する必要がありますか?私がそれらをメインプロジェクトに残しておくと、プロジェクトを複数の実行可能なjarまたは複数のエントリポイントを持つ単一のjarを構築するように構成する必要がありますか?単一のjarが使用されている場合、サーバーのプライマリエントリポイントをデフォルトとして指定できますか?

答えて

8

サーバーとユーティリティの依存関係がまったく異なる場合を除き、単純にしてすべてを1つのjarファイルに入れます。ラップ適切なクラスへの呼び出しシェルスクリプト提供:

# startServer.cmd 
java -cp MyServer.jar;other.jar com.foo.myserver.Main 

#showDiagniostics.cmd 
java -cp MyServer.jar;other.jar com.foo.myserver.Diagnostics 

あなたはそれメインクラスとして、サーバの起動クラスで実行可能jarファイルにすることができますが、私はそれが簡単に持っているよりも実行可能スクリプトを持っていることを見つけますuse java -jar MyServer.jar

+0

これらは非常に似ているので、実際に実行するクラスをパラメータ化する単一の開発者スクリプトがあることに注意してください。このように、2番目(または50番目)のエントリポイントを作成するには、新しいスクリプトは必要ありません。 –