0

次のモジュールを含むMavenプロジェクトがあります:app、、。私はmaven-war-pluginを使用してWebを構築します。今はに依存します。に依存します。app-implwebapp-implappwebapp-impl

ただし、webにのみ依存する必要がありますapp。いくつかの魔法によって、maven-war-pluginはapp-impl戦争に含まれるべきです。追加のMavenモジュールなしでそれを行うことはできますか?

4

2 に答える 2

2

に依存しているIMHOはappweb現実を反映していません。これは、Webアプリケーションが、で定義したと想定するインターフェイスの実装に実際に依存しているためですapp

たとえば、で別の実装を検討してくださいapp-impl2。Mavenは、どの実装を選択するかをどのように決定できますか?

したがって、Webをapp-implに依存させることは、私にとっては進むべき道であり、上記の設定を考えると、箱から出してすぐに機能するはずです。

于 2012-11-02T23:15:29.247 に答える
2

私は@Torstenに完全に同意しますが、おそらくあなたの要求に何か有効なものがあります:

IDEを使用してプロジェクトを開発する場合、コード補完リストでの実装クラスの提供を停止するようにIDEに要求できます。

これが理由である場合は、両方の依存関係を追加し、実装の場合はを指定します<scope>runtime</scope>。これにより、次のことが保証されます。

  • appモジュールはjavacのクラスパスに到達しますが、到達しませapp-impl
  • 両方appとあなたの戦争app-implの下に置かれますWEB-INF/lib/
  • IDE(適切に実装されている場合)は、app-impl

これは間違いなくキーストロークを節約しませんが、現実を注意深くモデル化して、より良いpomを提供します。

于 2012-11-02T23:35:40.060 に答える