2016-04-06 3 views
1

私はメインのプロジェクトポンポンでいくつかのプロジェクトの依存関係を定義し、子やサブプロジェクトPOMSでそれを参照した以下のプロジェクト構造Mavenの複数のプロジェクト間でプロジェクトの依存関係を共有するには?

Main Project 
--Sub Project 1 
    - child 1 
     * pom-child1 
    - child 2 
     * pom-child2 
    * pom-sub-project1 

--Sub Project 2 
     * pom-sub-project2 
* main project pom 

を持っています。しかし、pomがメインプロジェクトのpomの直接の子でない場合、私は問題を発見しています。それを解決する方法はありますか?

例、 主プロジェクトポンポン

<packaging>pom</packaging> 
<version>dev</version> 
<name>parent-project</name> 
.. 
<properties><spring-version>3.1.0.RELEASE</spring-version></properties> 

子POM

<parent> 
     <groupId>com.test.pkg</groupId> 
     <artifactId>test-proj</artifactId> 
     <version>${project.version}</version> 
    </parent> 

それは親ポンポンの直接の子でない場合に$ {project.version}は解決されませんが原因どのプロジェクト依存関係も解決されていません。

また、私は約property-maven-pluginを読んでいます。これは外部プロパティーファイルからプロパティーを読み取るために使用されます。これは、依存関係のバージョンを読むために使用できますか、この場合に使用できる他のプラグイン/アプローチがありますか?

+0

は、サブプロジェクト1および2の親としても定義されているメインプロジェクトのpomですか?子プロジェクトの親として定義されたサブプロジェクトですか?どのようなタイプの問題が発生していますか? –

+0

どの接続が機能しないのですか?どちらのプロジェクトの間? – Christian

+0

@ A.DiMatteo Ex:メインプロジエクトの下で、私は互いに独立した異なるWebプロジェクト(サブプロジェクト1,2 ..)を持っています。これらのWebプロジェクトのそれぞれには、共通のlib、関連する他のWebプロジェクトとなるサブモジュールがあります。それぞれには自分のポンがあります。メインプロジェクトのpomファイルには、プロジェクトの依存関係とバージョンがあります。これは、サブモジュールが直接サブポームである場合にのみアクセス可能で、プロジェクトのバージョンや依存関係はビルド中に解決されません。質問への追加情報 – Poppy

答えて

0

あなたは、デフォルトでは、子が親のバージョンを継承するため、ご両親のバージョンを定義するために

${project.version} 

を使用することはできません。

親バージョンを有効な値で設定し、プロパティでは設定しないでください。

これを実行すると、それが機能するはずです。子バージョンは親から継承されるため、指定する必要はありません。

関連する問題