मैं इन्फैन संदेशों को प्रदर्शित करने से मावेन को रोकना चाहता हूं, मैं केवल चेतावनी और त्रुटियों (यदि कोई हो) देखना चाहता हूं।
मैं इसे कैसे प्राप्त कर सकता हूं, अधिमानतः कमांड लाइन को बदलकर जो मैवेन कहता है?
मैं इन्फैन संदेशों को प्रदर्शित करने से मावेन को रोकना चाहता हूं, मैं केवल चेतावनी और त्रुटियों (यदि कोई हो) देखना चाहता हूं।
मैं इसे कैसे प्राप्त कर सकता हूं, अधिमानतः कमांड लाइन को बदलकर जो मैवेन कहता है?
जवाबों:
मैंने एक छोटी सी जांच की क्योंकि मुझे भी समाधान में दिलचस्पी है।
Http://books.sonatype.com/mvnref-book/reference/running-sect-options.html#running-sect-verbose-option के अनुसार
वर्तमान में maven 3.1.x System.out में लॉग इन करने के लिए SLF4J का उपयोग करता है। आप फ़ाइल में लॉगिंग सेटिंग्स को संशोधित कर सकते हैं:
${MAVEN_HOME}/conf/logging/simplelogger.properties
पृष्ठ के अनुसार: http://maven.apache.org/maven-logging.html
मुझे लगता है कि आपको कमांड लाइन पैरामीटर के माध्यम से सरल लकड़हारे के डिफ़ॉल्ट लॉग स्तर को इस तरह सेट करने में सक्षम होना चाहिए:
$ mvn clean package -Dorg.slf4j.simpleLogger.defaultLogLevel=debug
लेकिन मुझे यह काम करने के लिए नहीं मिला । मुझे लगता है कि इस के साथ ही समस्या है, maven वर्ग फ़ाइल पर config फ़ाइल से डिफ़ॉल्ट स्तर उठाता है। मैंने System.properties के माध्यम से कुछ अन्य सेटिंग्स की भी कोशिश की, लेकिन वे सभी असफल रहे।
आप यहाँ gfub पर slf4j का स्रोत पा सकते हैं: slf4j github
सिम्पलॉगर का स्रोत यहां: slf4j / jcl-over-slf4j / src / main / java / org / apache / commons / logging / impl / SimpleLog.java
प्लेक्सस लोडर लोड करता है simplelogger.properties
।
simplelogger.properties
काम करने में बदलाव मिला ? जब मैं org.slf4j.simpleLogger.warnLevelString
सेटिंग mvn compile
अपडेट को उचित रूप से बदलता हूं , लेकिन यह org.slf4j.simpleLogger.defaultLogLevel
सेटिंग को अनदेखा करता प्रतीत होता है । यह सूचना स्तर पर भी लॉग करता है, तब भी जब मैं चेतावनी या त्रुटि के लिए सेट करता हूं।
mvn validate clean install | egrep -v "(^\[INFO\])"
या
mvn validate clean install | egrep -v "(^\[INFO\]|^\[DEBUG\])"
mvn validate clean install | findstr /V /R "^\[INFO\] ^\[DEBUG\]"
mvn validate clean install | findstr /V /B "\[INFO\]" | findstr /V /B "\[WARN\]"
mvn validate clean install | findstr /V /R "^\[INFO\] ^\[WARN\]"
आप उदाहरण के लिए MAVEN_OPTS के साथ इसे प्राप्त कर सकते हैं
MAVEN_OPTS=-Dorg.slf4j.simpleLogger.defaultLogLevel=warn mvn clean
सिस्टम की संपत्ति को सीधे कमांड लाइन पर रखने के बजाय। (कम से कम मावेन 3.3.1 के लिए।)
~/.mavenrc
सेटिंग के लिए उपयोग करने पर विचार करें MAVEN_OPTS
यदि आप सभी मावेन इनवोकेशन में अपने लॉगिन के लिए लॉगिंग को बदलना चाहते हैं।
help:evaluate
मूल्य project.version
और इस आउटपुट को प्रिंट करने के लिए लक्ष्य चल रहा था (हालांकि लगता नहीं है कि slf4j
यह भी बंद हो गया)।
यदि आप लॉगबैक का उपयोग कर रहे हैं, तो बस इस logback-test.xml
फाइल को src/test/resources
डायरेक्टरी में रखें:
<configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<root level="INFO">
<appender-ref ref="STDOUT" />
</root>
</configuration>
आप कमांडलाइन में ही नीचे का उपयोग करके इसे प्राप्त कर सकते हैं
-e for error
-X for debug
-q for only error
जैसे:
mvn test -X -DsomeProperties='SomeValue' [For Debug level Logs]
mvn test -e -DsomeProperties='SomeValue' [For Error level Logs]
mvn test -q -DsomeProperties='SomeValue' [For Only Error Logs]
दुर्भाग्य से, maven 3 के साथ भी ऐसा करने का एकमात्र तरीका स्रोत कोड को पैच करना है।
यहाँ संक्षिप्त निर्देश है कि कैसे करें।
क्लोन या कांटा मावेन 3 रेपो: "गिट क्लोन https://github.com/apache/mavenLE.it "
संपादित करें org.apache.maven.cli.MavenCli # लॉगिंग, और परिवर्तन
cliRequest.request.setLoggingLevel( MavenExecutionRequest.LOGGING_LEVEL_INFO );
सेवा
cliRequest.request.setLoggingLevel( MavenExecutionRequest.LOGGING_LEVEL_WARN );
वर्तमान स्नैपशॉट संस्करण में यह पंक्ति 270 पर है
फिर बस "mvan install" चलाएं, आपका नया maven distro "apache-maven \ target \" फ़ोल्डर में स्थित होगा
संदर्भ के लिए इसे देखें: https://github.com/ushkinaz/maven-3/commit/cc079aa75ca8c82658c7ff53f18c6caaa32d2131
getLog()
- यदि आप कॉन्फ़िगरेशन के साथ रह सकते हैं।
सबसे आसान तरीका समर्थन का लाभ लेने के लिए मावेन 3.3.1 या उच्चतर में अपग्रेड करना है ${maven.projectBasedir}/.mvn/jvm.config
।
तो फिर तुम Maven के SL4FJ से किसी भी विकल्प का उपयोग कर सकते SimpleLogger सभी वालों या विशेष वालों कॉन्फ़िगर करने के लिए समर्थन करते हैं। उदाहरण के लिए, warn
पीएमडी को छोड़कर जो लॉग ऑन करने के लिए कॉन्फ़िगर किया गया है, को छोड़कर, सभी स्तरों पर चेतावनी देने का तरीका बताया गया है error
:
cat .mvn/jvm.config
-Dorg.slf4j.simpleLogger.defaultLogLevel=warn -Dorg.slf4j.simpleLogger.log.net.sourceforge.pmd=error
मावेन के साथ लॉगिंग के बारे में अधिक जानकारी के लिए यहां देखें ।
-B, --batch-mode
या कम क्रिया-q
करेगाmvn
।