2011-12-29 18 views
15

मैं जावा आवेदन का निर्माण कर रहा हूँ और अचानक मैं संकलन के साथ समस्या यह पाया: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 

लेकिन मैं इससे पहले कि इस आवेदन का निर्माण किया गया था और सब कुछ ठीक था। इसके अतिरिक्त, जब मैं इस एप्लिकेशन को टॉमकैट का उपयोग करके एक्लिप्स के तहत चलाता हूं, तो यह अच्छी तरह से चल रहा है।

पोम में मेरे पास है:

<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

लॉग 4j निर्भरता के दायरे को संकलित या निकालने के दायरे को बदलें।

+0

धन्यवाद! यह – Ilkar

+0

संकलित करता है, मेरे लिए भी सहायक है। – asifaftab87

+0

ज्यादातर मामलों में इसका उपयोग करें। या तो रनटाइम के बजाय संकलन के रूप में स्कोप बनाएं या इसे हटा दें –

0

मित्र इस प्रकार की समस्या तब होती है जब आप जेआरई का उपयोग करते हैं, जावा जेडीके के लिए अपनी परियोजना के पुस्तकालयों को बदलें कि समस्या ठीक हो जाएगी और आप 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> 

< = सफलतापूर्वक कम्पाइल हो गया!

संबंधित मुद्दे