私はJavaモノリスをいくつかの再利用可能なモジュールに分割しています。Maven JARモジュールには、リリースの依存関係が含まれていますか?
私は、依存関係ツリーにいくつかの問題があるかもしれないことを理解し始めています。
のは4つの依存関係を含める単純なプロジェクトを想像してみましょう、私の問題を説明するために:
Proj
ProjA
ProjB
ProjC
ProjD
は私のメインのプロジェクトの依存関係の1想像 - ProjAを - ProjD- - メインプロジェクトの依存関係のいずれかが必要です。
ProjA
ProjD
ProjF
クラスパスとその他の依存関係の問題で重複したクラスを防止するためのベストプラクティスは何ですか?
JARモジュールに依存関係を含める必要がありますか?この場合、サブモジュールを書き直して、このケースは起こらないようにしてください。
また、依存関係のないJARモジュールを構築して親「ルート」プロジェクトにのみ含めるべきですか?
私はあなたが達成したいことを理解していません。あなたは瓶や戦争を構築していますか?なぜクラスを複製したいのですか?マルチモジュールプロジェクトは、あるモジュールから別のモジュールへの依存関係を持つことができます(pom.xml内) –
各サブモジュールはsom関連の機能を表すか、おそらくアプリケーション内のレイヤーを表す必要があります。たとえば、ProjAは永続性の境界層です。したがって、ProjB、ProjC、およびProjDはProjAに依存します。従属性を持つことは可能ですが、循環依存性はありません。モジュールが設定されたら、誰かが循環依存を導入しようとすると、mavenは文句を言うべきです。パッケージ構造が明確に定義されている場合は、同じパッケージ内にクラス名**が重複することはありません。異なるパッケージのクラス名が重複していると、コードが重複しているか、クラス名が正しくないことが示唆されます。 –
サイクリック依存関係ではありません。重複したクラスの依存関係。潜在的に異なるバージョンのHibernateへの依存として2つの依存関係を想像してみてください。この問題をどうやって解決しますか? – user3779543