2011-12-29 13 views
15

私は、Javaアプリケーションを構築することだし、突然私は、コンパイルに問題が見つかりました:Mavenのコンパイル - エラーのlog4j

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.3.2:compile (default-compile) on project sonda: Compilation failure: Compilation failure: 
[ERROR] ..../service/UserService.java:[7,23] package org.apache.log4j does not exist 

をしかし、私は前にこのアプリケーションを構築して、すべてがOKでした。さらに、Tomcatを使ってEclipse上でこのアプリケーションを実行すると、うまく動作しています。 POMで

私が持っている:あなたは私

<dependency> 
     <groupId>org.slf4j</groupId> 
     <artifactId>slf4j-api</artifactId> 
     <version>${org.slf4j-version}</version> 
    </dependency> 
    <dependency> 
     <groupId>org.slf4j</groupId> 
     <artifactId>jcl-over-slf4j</artifactId> 
     <version>${org.slf4j-version}</version> 
     <scope>runtime</scope> 
    </dependency> 
    <dependency> 
     <groupId>org.slf4j</groupId> 
     <artifactId>slf4j-log4j12</artifactId> 
     <version>${org.slf4j-version}</version> 
     <scope>runtime</scope> 
    </dependency> 
    <dependency> 
     <groupId>log4j</groupId> 
     <artifactId>log4j</artifactId> 
     <version>1.2.15</version> 
     <exclusions> 
      <exclusion> 
       <groupId>javax.mail</groupId> 
       <artifactId>mail</artifactId> 
      </exclusion> 
      <exclusion> 
       <groupId>javax.jms</groupId> 
       <artifactId>jms</artifactId> 
      </exclusion> 
      <exclusion> 
       <groupId>com.sun.jdmk</groupId> 
       <artifactId>jmxtools</artifactId> 
      </exclusion> 
      <exclusion> 
       <groupId>com.sun.jmx</groupId> 
       <artifactId>jmxri</artifactId> 
      </exclusion> 
     </exclusions> 
     <scope>runtime</scope> 
    </dependency> 

助けることができますか?

答えて

31

log4j依存関係の範囲を変更してコンパイルまたは削除します。

+0

ありがとう!それは – Ilkar

+0

コンパイル、私のためにも役立ちます。 – asifaftab87

+0

ほとんどの場合、これを使用します。スコープをランタイムではなくコンパイルとして作成するか削除する –

0

JREを使用している場合、Java JDK用のプロジェクトのライブラリを変更して問題が解決され、slf4jを使用できる場合、このタイプの問題が発生します。

私は正確に同じ問題に遭遇した
3

のpom.xml:

<dependency> 
    <groupId>org.apache.logging.log4j</groupId> 
    <artifactId>log4j-core</artifactId> 
    <version>2.3</version> 
</dependency> 

ビルドエラー:package org.apache.log4j does not exist

根本原因:私は古いJRE(JREに対する私のプロジェクトをビルドするために必要な1.5.x)。現在のライブラリは明らかに互換性がありません。

ソリューション:あるlog4j.jarの古いバージョンに戻っ-REV:

<dependency> 
    <groupId>log4j</groupId> 
    <artifactId>log4j</artifactId> 
    <version>1.2.17</version> 
</dependency> 

< =が正常にコンパイルします!

関連する問題