2016-09-23 7 views
0

私は2つのプロジェクトを持っています。プロジェクトA & B.プロジェクトBはプロジェクトAに依存しています。 プロジェクトBを実行するには、プロジェクトBのpom.xmlにプロジェクトAのdepedencyを追加する必要があります。ローカル.m2リポジトリと中央Mavenリポジトリで検索せずに、mavenを使用してモジュールからファイルにアクセスするには?

私はMVNは、プロジェクトAの最新のコードでローカルリポジトリを更新するために、再度インストールしなければならないプロジェクトAから何かを変更した場合それから私は、プロジェクトB.

を実行することができ、私はプロジェクトAのプロジェクトにコードを変更するアクセスできますBはmvnのインストールをしないで?

答えて

0

いいえ更新されたコードにアクセスすることはできません。これは、Mavenアプリケーションをビルドすると、.m2リポジトリからすべての依存関係が取得されるためです。依存関係が見つからない場合は、リモートリポジトリを検索します。
Aのコードを更新してビルドしないと、更新された成果物が.m2リポジトリで使用できなくなります。今度はプロジェクトBをビルドすると、.m2リポジトリからプロジェクトA artiufactをフェッチしようとします。コードを変更した後はAをビルドしなかったので、Bは現在.m2フォルダにあるアーティファクト、つまり古いコードのアーティファクトをフェッチします。
もう1つのアプローチは、親のpomを持つことです。これは、両方のモジュールのpom.xmlを実行するアグリゲータpomです。例えばのため:

<project xmlns="http://maven.apache.org/POM/4.0.0" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
          http://maven.apache.org/maven-v4_0_0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 

    <groupId>org.sonatype.mavenbook.multispring</groupId> 
    <artifactId>simple-parent</artifactId> 
    <version>1.0</version> 
    <packaging>pom</packaging> 

    <modules> 
     <module>module-A</module> 
     <module>module-B</module> 
    </modules> 
</project> 

このためパッケージはポンポンでなければならないことに注意してください。

関連する問題