2011-03-31 15 views
5

का उपयोग करते हुए लाइब्रेरी का जिक्र करते समय संकलन त्रुटि मैं मैवेन के लिए नौसिखिया हूं और मुझे अपनी परियोजना बनाने में कुछ परेशानी हो रही है। मैं पोम फ़ाइलमैवेन

<dependency> 
     <groupId>log4j</groupId> 
     <artifactId>log4j</artifactId> 
     <version>1.2.16</version> 
     <scope>runtime</scope> 
    </dependency> 

को log4j निर्भरता को शामिल किया है और मैं अपने वर्गों में से एक में एक सामान्य उपयोग में यह उपयोग कर रहा हूँ

import org.apache.log4j.Logger; 

public class ConnectionPoolImpl implements Runnable, ConnectionPool { 
    static Logger logger = Logger.getLogger(ConnectionPoolImpl.class); 

संकलन अच्छी तरह से चला गया जब तक मैं mvn स्वच्छ का इस्तेमाल किया है आदेश। अब जब मैं mvn का उपयोग कर अपने प्रोजेक्ट बनाने की कोशिश संकलन मैं हो रही है:

[INFO] Compiling 2 source files to C:\Temp\cp\target\classes 
[INFO] ------------------------------------------------------------- 
[ERROR] COMPILATION ERROR : 
[INFO] ------------------------------------------------------------- 
[ERROR] \Temp\cp\src\main\java\com\opower\connectionpool\ConnectionPoolImpl.java 
:[9,23] package org.apache.log4j does not exist 
[ERROR] \Temp\cp\src\main\java\com\opower\connectionpool\ConnectionPoolImpl.java 
:[19,9] cannot find symbol 
symbol : class Logger 
location: class com.opower.connectionpool.ConnectionPoolImpl 
[ERROR] \Temp\cp\src\main\java\com\opower\connectionpool\ConnectionPoolImpl.java 
:[19,25] cannot find symbol 
symbol : variable Logger 
location: class com.opower.connectionpool.ConnectionPoolImpl 
[INFO] 3 errors 

किसी भी विचार मैं गलत क्या कर रहा हूँ?

उत्तर

16

मैं Maven विशेषज्ञ नहीं हूं, लेकिन log4j दायरा के बजाय compile होना चाहिए। अगर मैं गलत हूं कृपया मुझे सही।

maven doc से,

क्रम - इस दायरे इंगित करता है कि निर्भरता संकलन के लिए आवश्यक नहीं है, लेकिन निष्पादन के लिए है। यह रनटाइम और टेस्ट क्लासपाथ में है, लेकिन संकलित क्लासपाथ नहीं है।

+0

यह काम किया। आप लोगों को धन्यवाद! – special0ne

3

यदि आपके पास runtime के दायरे थे, तो मूल उद्देश्य संभवतः SLF4J या somesuch का उपयोग करना था। Logger के लिए गलत नामस्थान आयात करना बहुत आसान है।

0

संकलन दायरे का उपयोग करके, अभी भी जार युद्ध में डालता है।