क्या मैवेन को कम क्रिया बनाया जा सकता है?


104

मावेन ने मेरे स्वाद के लिए आउटपुट की बहुत सी पंक्तियों को बाहर निकाल दिया (मुझे यूनिक्स तरीका पसंद है: कोई भी खबर अच्छी खबर नहीं है)।

मैं सभी [INFO] लाइनों से छुटकारा पाना चाहता हूं, लेकिन मुझे एक तर्क या कॉन्फ़िगर सेटिंग्स का कोई उल्लेख नहीं मिला जो मावेन की क्रियाशीलता को नियंत्रित करता है।

क्या लॉग स्तर सेट करने के लिए कोई LOG4J जैसा तरीका नहीं है?


2
मावेन के साथ 3.6.1 (अप्रैल 2019, 10+ साल बाद), mvn --no-transfer-progress ...(या mvn -ntpशॉर्ट्स के लिए) एक पर्याप्त समाधान होना चाहिए। देखें नीचे मेरा उत्तर
VonC

जवाबों:


132

आप -q स्विच को आज़मा सकते हैं ।

-q, - शांत चुप आउटपुट - केवल त्रुटियाँ दिखाते हैं


2
@ शेखी: स्पष्ट करने के लिए, यह विकल्प लकड़हारा डिबग संदेशों को अक्षम नहीं करता है - आपको अपने लकड़हारा सेटिंग्स के माध्यम से इसे बंद करने की आवश्यकता है। उदाहरण के लिए, यदि आप लॉगबैक का उपयोग कर रहे हैं, जिसमें आपकी परियोजना में src / test / resource / logback-test.xml फ़ाइल शामिल है, तो आप परीक्षण चरण के दौरान अपने लॉगिंग स्तर को 'बंद' करने के लिए अनुकूलित कर देंगे। इससे सब साफ हो जाएगा।
कोडेटनर

10
मेरी समस्या यह है कि -qबहुत शांत है। मैं CI के तहत मावेन चला रहा हूं, और मैं इसे (प्रगति को ट्रैक करने के लिए) कदम देखना चाहता हूं, लेकिन डाउनलोड संकेतक गैर-एएनएसआई प्रदर्शन की गड़बड़ी कर रहे हैं। क्या केवल डाउनलोड प्रगति संकेतक बंद करने का एक तरीका है?
गूस

6
@Guss: यदि आप केवल डाउनलोडिंग / डाउनलोड किए गए संदेशों को छोड़ना चाहते हैं, तो -Bबैच मोड को सक्षम करने के लिए उपयोग करें (आपको अपने CI सिस्टम में वैसे भी!) होना चाहिए, और फिर MAVEN_OPTS="-Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn"डाउनलोड के लिए प्रगति की जानकारी को मारने के लिए सेट करें।
अंकोन

1
मावेन 3.5.x में मुझे वास्तव में काम करने के लिए ट्रिक के लिए सक्षम --batch-mode( -B) करने की आवश्यकता है -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn
1

यदि आप इच्छुक हैं तो मैंने इंटरेक्टिव मोड मुद्दों के साथ संगत समाधान प्रस्तुत किया है ।apache.org / jira / browse / MNG-6605 , github.com/apache/maven/pull/239
Ray

27

-q जैसा कि ऊपर कहा गया है कि आपको क्या चाहिए। एक विकल्प हो सकता है

-B , - बैच-मोड नॉन-इंटरैक्टिव (बैच) मोड में चलाएं बैच मोड आवश्यक है यदि आपको मावेन को गैर-इंटरैक्टिव, निरंतर एकीकरण वातावरण में चलाने की आवश्यकता है। गैर-इंटरैक्टिव मोड में चलने पर, मावेन उपयोगकर्ता से इनपुट स्वीकार करने के लिए कभी नहीं रुकेगा। इसके बजाय, जब इनपुट की आवश्यकता होगी तो यह समझदार डिफ़ॉल्ट मानों का उपयोग करेगा।

और आउटपुट मैसेज को भी कम या ज्यादा जरूरी कर देगा।


इसका उपयोग गैर-संवादात्मक मोड के लिए किया जाता है, जो
स्टैनिस्लाव

22

मेरी समस्या यह है कि -q बहुत शांत है। मैं CI के तहत मावेन चला रहा हूं

साथ Maven 3.6.1 (अप्रैल 2019) , अब आप एक है हस्तांतरण प्रगति जब इंटरैक्टिव मोड में डाउनलोड करने / अपलोड करने को दबाने के लिए विकल्प

mvn --no-transfer-progress ....

या संक्षेप में:

mvn -ntp ... ....

यही बात रे ने MNG-6605 और PR 239 के साथ टिप्पणियों में प्रस्तावित की ।


यह समाधान अपलोड संदेशों के साथ-साथ डाउनलोड को भी दबा देता है, जो आमतौर पर एक deployकार्य में वांछित नहीं है
हिलिकस


6

-Q या --quiet कमांड-लाइन विकल्पों का उपयोग करें


2

यदि आप केवल उन [INFO]संदेशों से छुटकारा पाना चाहते हैं जो आप भी कर सकते हैं:

mvn ... | fgrep -v "[INFO]"

को दबाने के लिए सभी (त्रुटियों को छोड़कर) आउटपुट आप अनुप्रेषित सकता stdoutकरने के लिए /dev/nullके साथ:

mvn ... 1>/dev/null

(यह केवल तभी काम करता है जब आप bashमावेन कमांड को चलाने के लिए (या समान गोले) का उपयोग करते हैं ।)


0

Maven 3.1.x लॉगिंग के लिए SLF4j का उपयोग करता है, आप इसे https://maven.apache.org/maven-log.html पर कॉन्फ़िगर करने का निर्देश पा सकते हैं

संक्षेप में: पर्यावरण चर के ${MAVEN_HOME}/conf/logging/simplelogger.propertiesमाध्यम से एक ही गुण को संशोधित या सेट करें MAVEN_OPTS

उदाहरण के लिए: बैच मोड ट्रांसफर श्रोता के लॉगिंग MAVEN_OPTSको -Dorg.slf4j.simpleLogger.log.org.apache.maven.cl‌​i.transfer.Slf4jMave‌​nTransferListener=wa‌​rnकॉन्फ़िगर करने के लिए सेटिंग , और -Dorg.slf4j.simpleLogger.defaultLogLevel=warnडिफ़ॉल्ट लॉग स्तर सेट करता है।


0

मौजूदा उत्तर लॉग-लेवल के आधार पर आपको फ़िल्टर करने में मदद करता है --quiet। मैंने पाया कि कई INFO संदेश डिबगिंग के लिए उपयोगी होते हैं, हालांकि डाउनलोडिंग आर्टिफ़िश लॉग संदेश जैसे निम्न शोर और मददगार नहीं थे।

Downloading: http://nexus:8081/nexus/content/groups/public/org/apache/maven/plugins/maven-compiler-plugin/maven-metadata.xml

मुझे यह समाधान मिला:

https://blogs.itemis.com/en/in-a-nutshell-removing-artifact-messages-from-maven-log-output

mvn clean install -B -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.