2011-12-29 94 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 

,但我之前構建這個應用程序,一切正常。另外,當我使用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 2011-12-29 12:49:12

+0

編譯,對我也有幫助。 – asifaftab87 2017-04-28 09:13:54

+0

在大多數情況下使用這個。或者將作用域編譯爲編譯而不是運行時或將其刪除 – 2017-08-17 19:09:57

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

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

< =編譯成功!