0

それぞれが main() を持つ 3 つの異なるクラスを含む単一の Java プロジェクトがあります。プロジェクト全体に対して 1 つの pom.xml ファイルがあります。

これらのクラスごとに依存関係を持つ jar を Maven に作成してもらいたいと思います。

どうやってやるの??

4

3 に答える 3

2

それぞれが別個のアプリケーションである3つのメインクラスがある場合、おそらく4つのjarが必要です。1つは各メインクラス用で、もう1つはそれらの間で共有されるコード用です。Mavenは、「モジュールごとに1つのアーティファクト」という考えに非常に密接に結びついています。これに逆らおうとすると、暗くて危険な道を進んでいます。Mavenでこの構造を表現する自然な方法は、5つまたは6つのモジュールです。

  1. 他のすべてのモジュールを集約するプロジェクトのルートモジュール。これは、jarを生成するモジュールではありません。そのパッケージは「pom」になります。
  2. (オプション)すべてのアーティファクト生成モジュールが継承する「親」サブモジュール。このモジュールを使用して、共通の依存関係バージョンを確立したり、すべてのモジュールに必要なリポジトリを設定したりできます。これには、パッケージングも「pom」に設定されます。プロジェクトのルートにあるアグリゲーターモジュールもこの役割を果たすことができるため、これはオプションですが、コードの場合と同様に、関心の分離は適切です。このトピックは、Sonatypeブックの「POMベストプラクティス」で取り上げられています。
  3. 3つのメインクラス間で共有されるすべてのコードを含むサブモジュール。

そして4-6:各メインクラスのサブモジュールと、そのメインクラス/アプリケーションに固有のサポートコードと構成。

ファイルシステムでは、このソリューションは次のようになります。

<project folder>
  - pom.xml
  - parent-module
    - pom.xml
  - common
    - pom.xml
  - app1
    - pom.xml
  - app2
    - pom.xml
  - app3
    - pom.xml

次に、アセンブリプラグインappassemblerなどを使用して、適切な構成、ライブラリ、および起動スクリプトがすべて一緒にパッケージ化されたディストリビューションを作成します。

于 2013-02-17T16:13:58.160 に答える
0

これはプロファイルで行うことができます。ここに例があります(クリック)

于 2013-02-17T15:28:49.650 に答える
0

あなたは本当にそれをすべきではありません。別のSO 投稿にもリンクしているthisをお読みください。

于 2013-02-17T15:29:09.383 に答える