2011-12-29 12 views
15

estoy construyendo aplicaciones Java y de repente me encontré con el problema de compilación:compilación de maven - log4j error

[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 

Pero yo estaba construyendo esta aplicación antes y todo estaba bien. Además, cuando ejecuto esta aplicación en Eclipse usando Tomcat, funciona bien.

En pom tengo:

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

¿Me puede ayudar?

Respuesta

31

Cambie el alcance de la dependencia log4j para compilarla o eliminarla.

+0

gracias! funciona – Ilkar

+0

compilar, útil para mí también. – asifaftab87

+0

En la mayoría de los casos, use esto. o bien hacer alcance como compilación en lugar de tiempo de ejecución o eliminarlo –

0

Amigo este tipo de problema se produce cuando se utiliza JRE, cambie las bibliotecas de su proyecto para Java JDK que el problema se solucionará y puede usar slf4j.

3

me encontré con exactamente el mismo problema:

pom.xml:

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

error de compilación: package org.apache.log4j does not exist

causa raíz: que necesitaba para construir mi proyecto contra un JRE más viejo (JRE 1.5.x); las bibliotecas actuales son aparentemente incompatibles.

Solución: back-rev a una versión anterior de log4j.jar:

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

< = compila correctamente!

Cuestiones relacionadas