1

「appA」と「appB」という 2 つのプロジェクトがあり、それぞれが 3 番目のプロジェクト「common」に依存しています。私はそれらをantからmavenに移行中ですが、mavenでそれを行う最善の方法を見つけるのに苦労しています。私のフォルダ構造は次のようになります。

root
+ common  
+ appA  
+ appB  

親 pom.xml をルートに追加し、appA と appB をビルドするために、この親プロジェクトのモジュールとして共通の appA と appB を持つことができましたが、これは私が望むものではありません。ルート pom.xml はappA と appB はまったく無関係のプロジェクトであるため、適切ではありません。

appA と appB を別々の Maven プロジェクトにして、両方とも 3 番目の共通プロジェクトに依存し、必要に応じてビルドするようにして、appA または appB フォルダーに移動し、「mvn package」と入力して appA + common をビルドできるようにします。または appB + common です。これは私がAntで設定した方法ですが、mavenには適切な類似点がない可能性があります。正しい方向への助けやナッジは大歓迎です:)

4

1 に答える 1

0

(...)しかし、これは私が望むものではありません。appAとappBは完全に無関係なプロジェクトであるため、ルートpom.xmlは適切ではありません。

次に、それを行わないでください。必要がない場合は集計を使用せず、のPOMおよびcommonのPOMで依存関係として 宣言するだけです。このようなもの:appAappB

<project>
  <modelVersion>4.0.0</modelVersion>
  <groupId>foo</groupId>
  <artifactId>appA</artifactId>
  <packaging>jar</packaging>
  <version>X-SNAPSHOT</version>
  ...
  <dependencies>
    <dependency>
      <groupId>bar</groupId><!-- at your discretion -->
      <artifactId>common</artifactId>
      <version>Y.Z-SNAPSHOT</version>
    </dependency>
    ...
  </dependencies>
  ...
</project>

依存関係はローカルリポジトリを介して解決されるため、最初mvn installcommonプロジェクトを実行する必要があります(変更後、依存関係を「表示」する必要があります)。

開発中の一般的な方法は、依存するプロジェクトをIDEにインポートし、ワークスペース内のプロジェクトに依存するように構成することです(バイナリ依存関係に対して)。installこれにより、変更を表示する手順が節約されます。ほとんどのIDEはこのアプローチをサポートしています。

于 2010-07-20T20:56:40.813 に答える