Maven wypluwa zbyt wiele linii wyjścia według mojego gustu (lubię sposób uniksowy: brak wiadomości to dobra wiadomość).
Chcę pozbyć się wszystkich linii [INFO], ale nie mogłem znaleźć żadnej wzmianki o argumencie lub ustawieniach konfiguracyjnych, które kontrolują szczegółowość Mavena.
Czy nie ma sposobu podobnego do LOG4J, aby ustawić poziom dziennika?
mvn --no-transfer-progress ...
(lub wmvn -ntp
przypadku szortów) powinno być odpowiednim rozwiązaniem. Zobacz moją odpowiedź poniżej .Odpowiedzi:
Możesz wypróbować przełącznik -q .
źródło
-q
jest za cicho. Uruchamiam maven pod CI i chcę zobaczyć kroki, które trzeba wykonać (aby śledzić postęp), ale wskaźniki pobierania robią bałagan na wyświetlaczu innym niż ANSI. Czy istnieje sposób, aby wyłączyć tylko wskaźniki postępu pobierania?-B
aby włączyć tryb wsadowy (i tak powinieneś mieć go w swoim systemie CI!), A następnie ustaw tak,MAVEN_OPTS="-Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn"
aby wyłączyć informacje o postępie pobierania.--batch-mode
(-B
), aby-Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn
sztuczka zadziałała.-q, jak wspomniano powyżej, jest tym, czego potrzebujesz. Alternatywą może być
-B , --batch-mode Uruchom w trybie nieinteraktywnym (wsadowym) Tryb wsadowy jest niezbędny, jeśli chcesz uruchomić Maven w nieinteraktywnym, ciągłym środowisku integracji. Podczas pracy w trybie nieinteraktywnym Maven nigdy nie przestanie akceptować danych wejściowych od użytkownika. Zamiast tego użyje rozsądnych wartości domyślnych, gdy będzie to wymagało wprowadzenia.
A także zredukuje komunikaty wyjściowe mniej więcej do podstawowych.
źródło
Dzięki Maven 3.6.1 (kwiecień 2019 r.) Masz teraz możliwość wstrzymania postępu transferu podczas pobierania / przesyłania w trybie interaktywnym .
To właśnie zaproponował Ray w komentarzach do MNG-6605 i PR 239 .
źródło
deploy
zadaniuOficjalny link: https://maven.apache.org/maven-logging.html
Możesz dodać w parametrach JVM :
Uważaj na WIELKIE LITERY.
źródło
Użyj opcji wiersza polecenia -q lub --quiet
źródło
Jeśli chcesz tylko pozbyć się
[INFO]
wiadomości, możesz również zrobić:Aby ukryć wszystkie wyjścia (z wyjątkiem błędów), możesz przekierować
stdout
do/dev/null
:(Działa to tylko wtedy, gdy używasz
bash
(lub podobnych powłok) do uruchamiania poleceń Mavena.)źródło
Maven 3.1.x używa SLF4j do logowania, instrukcje konfiguracji można znaleźć na https://maven.apache.org/maven-logging.html
W skrócie: albo zmodyfikuj
${MAVEN_HOME}/conf/logging/simplelogger.properties
, albo ustaw te same właściwości za pomocąMAVEN_OPTS
zmiennej środowiskowej.Na przykład: ustawienie
MAVEN_OPTS
do-Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn
konfiguruje rejestrowanie transferu słuchacza trybie wsadowym i-Dorg.slf4j.simpleLogger.defaultLogLevel=warn
ustawia domyślny poziom dziennika.źródło
Istniejąca odpowiedź pomaga filtrować na podstawie poziomu dziennika przy użyciu
--quiet
. Zauważyłem, że wiele komunikatów INFO jest przydatnych do debugowania, jednak komunikaty dziennika pobierania artefaktów, takie jak poniższe, były głośne i nie były pomocne.Znalazłem to rozwiązanie:
https://blogs.itemis.com/en/in-a-nutshell-removing-artifact-messages-from-maven-log-output
źródło