0

以下のようにmavenでインターフェースプロジェクトを実装できるかどうか疑問に思っています。

Project-A と Project-B は、Project-C のインターフェイスを実装する同じクラスを持っています。Project-Z は、Project A,B,C をモジュールとして含む Project-I(POM) のみを使用します。

Project-A または Project-B の実装が Project-Z で使用されるように、プロファイル メカニズムを使用したいと考えています。

可能だと思われる場合は、簡単な例を教えてください。

ありがとう。

4

2 に答える 2

1

2 つの実装 jar がマニフェストで同じサービスを宣言するJava SPI (Service Provider Interface) を使用できます。アプリを使用すると、ルックアップを実行し、それらを繰り返し処理して、1 つを選択できます。(その場で簡単な例は見つかりませんでした。)

于 2012-05-27T10:13:26.523 に答える
0

Mavenプロファイルで本当にやりたい場合に思いつく最も簡単な方法は、プロファイルでクラス名を使用してプロパティを設定できます。次に、実行時にこのプロパティでクラスをインスタンス化します。

<profile>
    <id>a</id> 
    <properties> 
         <myproject.componentX.implementation.class>com.foo.bar.BazA</myproject.componentX.implementation.class>

ビルド時にルート pom でそれを実行したい理由はおそらく奇妙に思えます....おそらく、頻繁に変更しないことを計画しているでしょう。何をするかによって、より良い方法があります。

どのような場合にそれを変更したいのか、その理由と頻度を説明していただけますか?

于 2012-05-29T05:24:46.647 に答える