Maven을 덜 장황하게 만들 수 있나요?
문제
Maven은 내 취향에 비해 너무 많은 출력 라인을 뿜어낸다(나는 Unix 방식을 좋아한다:아무 소식도 없다는 것은 좋은 소식이다).
모든 [INFO] 행을 제거하고 싶지만 Maven의 자세한 정보를 제어하는 인수 또는 구성 설정에 대한 언급을 찾을 수 없습니다.
로그 수준을 설정하는 LOG4J와 같은 방법이 없나요?
해결책
당신은 시도할 수 있습니다 -큐 스위치.
-q,--quiet 조용한 출력 - 오류만 표시
다른 팁
-큐 위에서 말했듯이 필요한 것입니다.대안은 다음과 같습니다.
-비, --배치 모드비 결과 적 활성화 (Batch) 모드 배치 모드에서 실행하는 것은 비 결과 적 연속 통합 환경에서 Maven을 실행 해야하는 경우 필수적입니다.비대화형 모드에서 실행될 때 Maven은 사용자 입력을 받아들이는 것을 멈추지 않습니다.대신 입력이 필요할 때 합리적인 기본값을 사용합니다.
또한 출력 메시지를 어느 정도 필수 항목으로 줄입니다.
-q 또는 --quiet 명령줄 옵션을 사용하세요.
공식 링크:https://maven.apache.org/maven-logging.html
에서 추가할 수 있습니다. JVM 매개변수:
-Dorg.slf4j.simpleLogger.defaultLogLevel=WARN
대문자에 주의하세요.
Maven 3.1.x는 로깅을 위해 SLF4j를 사용합니다. 구성 방법에 대한 지침은 다음에서 찾을 수 있습니다. https://maven.apache.org/maven-logging.html
간단히 말해서:수정하거나 ${MAVEN_HOME}/conf/logging/simplelogger.properties
, 또는 다음을 통해 동일한 속성을 설정합니다. MAVEN_OPTS
환경 변수.
예를 들어:환경 MAVEN_OPTS
에게 -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn
배치 모드 전송 리스너의 로깅을 구성합니다. -Dorg.slf4j.simpleLogger.defaultLogLevel=warn
기본 로그 수준을 설정합니다.
그냥 없애고 싶으시다면 [INFO]
당신도 할 수 있는 메시지:
mvn ... | fgrep -v "[INFO]"
억제하다 모두 리디렉션할 수 있는 출력(오류 제외) stdout
에게 /dev/null
와 함께:
mvn ... 1>/dev/null
(이것은 다음을 사용하는 경우에만 작동합니다. bash
(또는 유사한 쉘)을 사용하여 Maven 명령을 실행합니다.)
기존 답변은 다음을 사용하여 로그 수준을 기준으로 필터링하는 데 도움이 됩니다. --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
내 문제는 -q가 너무 조용하다는 것입니다.CI에서 Maven을 실행 중입니다.
와 함께 메이븐 3.6.1(2019년 4월), 이제 당신은 대화형 모드에서 다운로드/업로드할 때 전송 진행을 억제하는 옵션.
mvn --no-transfer-progress ....
또는 짧게 말하면:
mvn -ntp ... ....