2011-12-29 21 views
15

Sto costruendo applicazione java e improvvisamente ho trovato un problema con la compilazione:Maven compilation - errore di 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 

Ma stavo costruendo questa applicazione prima e tutto era ok. Inoltre, quando eseguo questa applicazione in Eclipse usando tomcat, funziona bene.

Nel pom ho:

<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> 

Mi potete aiutare?

risposta

31

Modificare l'ambito della dipendenza log4j per compilarlo o rimuoverlo.

+0

grazie! funziona – Ilkar

+0

compila, utile anche per me. – asifaftab87

+0

Nella maggior parte dei casi usa questo. rendere l'ambito compilato anziché runtime o rimuoverlo –

0

Amico questo tipo di problema si verifica quando si utilizza JRE, si modificano le librerie del progetto per Java JDK che il problema verrà risolto e si può usare slf4j.

3

Ho incontrato esattamente lo stesso problema:

pom.xml:

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

errore Crea: package org.apache.log4j does not exist

Causa principale: avevo bisogno di costruire il mio progetto contro un vecchio JRE (JRE 1.5.x); le attuali librerie sono apparentemente incompatibili.

Soluzione: back-rev a una versione precedente di log4j.jar:

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

< = Compila con successo!