2017-01-26 5 views
0

を経由して構築されたクライアントjarに制限依存関係は、私は私のクラスのすべてが含まれていサーバー jarファイルを構築し、それらのクラスのほんの一部を持っているクライアント瓶います。Mavenの:アセンブリ

は、私は私のクライアント jarファイルを構築するために私のサーバー jarファイルを構築するためにmaven-jar-pluginを使用し、maven-assembly-plugin。これは私が必要とする2つのジャーを作ります。

しかし、クライアントjarは、それがこれらのjarを必要とするクラスの多くを持っていない場合でも、サーバーの瓶と同じ依存関係を持っています。誰かが依存関係としてクライアントjarを追加すると、戦争の一環として、数十の不要なjarファイルがダウンロードされます。

クライアント jarのこのjar依存関係リストをトリミングする方法はありますか?つまり、複数のMavenプロジェクトを設定する必要はありませんか?

+0

Mavenは本当に除くクラスはいえ必要なく、いくつかの依存関係を作ることができることを判断するための良い方法はありません。実行時に、すべてのベットがオフになる可能性があります。共通モジュール、サーバーJARを構築する1つのモジュール、クライアントJARを構築する1つのモジュールの3つのモジュールが必要です。 – Tunaki

+0

@David W.これを確認するには、これらのクライアントとサーバーのJARファイルを異なるモジュールから生成しますか?誰かが依存関係としてクライアントjarを追加する場合* ..戦争の一環として、それは不必要なjarファイルの数十をダウンロード... * - ただ、デバッグには、 ' some.group clientArtifact いくつかを試すことができます.Version * * 'といや@nullpointer必要なもの – nullpointer

+0

を見つけるために構築します。これらは1つのモジュールによって生成されます。サーバーのすべてのソースがあるので、私は 'foo-1.0-server.jar'を作成します(' maven-jar-plugin'に ''を設定します。 client.jar'。迅速かつ簡単。プラス、これは既存のプロジェクトだった、と私はそれを解くしようとしているコードを掘るしたくなかった。 –

答えて

0

ただ、これを閉じるには:

あなたは異なる分類とjarファイルを構築するためにアセンブリを経由して依存関係を制限することはできません。これが問題であるならば、あなたは自分のモジュールとして独立しクライアントサーバー瓶とモジュール化プロジェクトを作成する必要があります。それはもっと複雑ですが、あなたはそれをもっとコントロールできます。

関連する問題