2017-10-18 12 views
0

Iは {project.parent.basedir}

| prj 
    | a1_module 
    |src 
    |pom 
    | a2_module 
    |src 
    |pom  
    | lib 
    xyz.jar 
    |pom(parent) 

が今はサブモジュール(a1_module)でxyz.jarレジスタ

プロジェクトにおける構造下記たパスのサブモジュールではなく、親モジュールパスの撮影POM:

<dependency> 
    <groupId>com.asd.prj</groupId> 
    <artifactId>pubsub</artifactId> 
    <version>1.0.0.</version> 
    <scope>system</scope> 
    <systemPath>${project.parent.basedir}/lib/pubsub_2.11-1.0.0-SNAPSHOTjar</systemPath> 
</dependency> 

私は${project.parent.basedir}/lib/pubsub_2.11-1.0.0-SNAPSHOTjarが私にprj/lib/pubsub_2.11-1.0.0-SNAPSHOTjarを与える必要があります期待が、それは私にこのprj/a1_module/lib/pubsub_2.11-1.0.0-SNAPSHOTjarようなパスを提供します。

メインモジュールの "lib"ディレクトリには、サブモジュールに保存されているjarファイルがないのでエラーが表示されます。

This questionは、project.parent.basedirはそのモジュールパスの親のパスを与えなければならないと私のケースでは、サブモジュールのパスはむしろ親モジュールのパスを与えると言います。

私が間違ってやっていることや、ローカルジャーをサブモジュールに登録する方法が他にあります。

+1

は、システムスコープの依存関係を削除して、このようなlibディレクトリ構造物のMavenで...彼らは本当に悪いことを使用しないでください。リポジトリマネージャを使い始め、リポジトリマネージャにこのjarを展開してください。その後、通常の依存関係としてjarファイルを使用してください...(pubsub-1.0.0-SNAPSHOT.jarは別のMavenビルドで作成されていると仮定します) – khmarbaise

+0

あなたは正しい@khmarbaiseです。私はリポジトリマネージャの方法に従います。 これは良い方法ではありません。 –

答えて

0

あなたはこれを使用することができます:

<systemPath>${basedir}/../lib/pubsub_2.11-1.0.0-SNAPSHOTjar</systemPath> 
+0

これも同じ問題を試しました。 –