私はこのMavenhierachyを持っています:
sim-java
ejb
web
log4j
...
ejb、web、log4jはsim-javaのモジュールであり、これらの各モジュールは親タグによってsim-javaを参照します。
log4jモジュールを作成し、それをsim-javaの依存関係として含めたいので、log4jはejbおよびwebモジュールの依存関係として存在します。
基本的に、sim-java内の私のpom.xmlにはこれが含まれています:
<dependencies>
<dependency>
<groupId>com.sim</groupId>
<artifactId>log4j</artifactId>
<version>${log4j.version}</version>
<scope>provided</scope>
</dependency>
</dependencies>
(スコープは、earファイルにcom.sim:log4jを含むearモジュールがあるため提供されます)。
これで、log4jモジュール内のpom.xmlは次のようになります。
<dependencies>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
</dependencies>
このビルドエラーがあります:
30/10/12 18:56:07 CET:log4jのビルドエラー。org.apache.maven.lifecycle.LifecycleExecutionException:プロジェクトlog4jでの目標の実行に失敗しました:プロジェクトcom.sim:log4j:jar:0.0.1-の依存関係を解決できませんでしたスナップショット:アーティファクトcom.sim:log4j:jarが見つかりませんでした: 0.0.1-スナップショット
sim-javaは推移的な依存関係としてcom.sim.log4jを使用しているため、依存関係の問題があると思ったので、log4jpom.xml内でテストしました。
<dependencies>
<dependency>
<groupId>com.sim</groupId>
<artifactId>sim-java</artifactId>
<version>0.0.1-SNAPSHOT</version>
<exclusions>
<exclusion>
<groupId>com.sim</groupId>
<artifactId>log4j</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
</dependencies>
30/10/12 18:59:22 CET:[警告] com.sim:log4j:jar:0.0.1-SNAPSHOTのPOMがありません。依存関係情報がありません。30/10/12 18:59:22 CET:欠落しているアーティファクトcom.sim:log4j:jar:0.0.1-SNAPSHOT:提供された30/10/12 18:59:22 CET:欠落しているアーティファクトcom.sim:log4j:jar:0.0.1-SNAPSHOT:提供された30/10 / 12 18:59:22 CET:アーティファクトがありませんcom.sim:log4j:jar:0.0.1-SNAPSHOT:提供
モジュール(ejb、webなど)内にcom.sim.log4jを含めることはおそらく機能しますが、sim-javaプロジェクトを介して推移的な依存関係を使用したいと思います。
これを行う方法を教えてください?
オリヴィエ