0

私のプロジェクトでは、Android または Java で実行できるコードを使用しています。一般的でない部分を抽象化するために、同じ API を使用しますが、プラットフォーム固有の実装 (1 つは Android 用、もう 1 つは Java 用) を使用します。

このようなもの:

common/src/main/java/...
droid/src/main/java/...
POJ/src/main/java/...

common は、 droid.jar または POJ.jarのいずれかに依存できます。

私はプロファイルを使用して Android ビルド (droid.jar 依存関係を指定) を実行し、続いて共通で Java ビルド (POJ.jar 依存関係を指定) を実行しています。どちらも同じ名前で内容が異なるアーティファクトを作成するため、これにより衝突が発生します。

私はmavenに後ろ向きに曲がるように頼んでいますか?これを達成するためのより良い方法はありますか?

ありがとう!

4

1 に答える 1

0

プラグインを使用して jar/war/... を構築していると思います。maven プロファイルでは、依存関係を宣言できるだけでなく、プラグイン構成も宣言できました。

ように見えます:

<profile>
  <id>whatever</id>
  <build>
    <plugins>
      <groupId/>
      <artifactId/>
      <version/>
      <configuration>
        ...
      </configuration>
    </plugins>
  </build>
</profile>

たとえば、maven-jar-plugin を使用する場合。finalnameを定義して、異なるプロファイルから一意の名前を取得できます。

ただし、一方のプロファイルを使用してビルドすると、もう一方のプロファイルが削除されることに注意してくださいmvn -Panother clean package

別のアプローチは、異なる依存関係を持つサブモジュールを作成することです。

于 2013-03-15T02:13:53.840 に答える