Maven'in INFO mesajlarını görüntülemesini önlemek istiyorum, sadece UYARILAR ve HATALAR (varsa) görmek istiyorum.
Tercihen maven çağıran komut satırını değiştirerek bunu nasıl başarabilirim?
Maven'in INFO mesajlarını görüntülemesini önlemek istiyorum, sadece UYARILAR ve HATALAR (varsa) görmek istiyorum.
Tercihen maven çağıran komut satırını değiştirerek bunu nasıl başarabilirim?
Yanıtlar:
Küçük bir araştırma yaptım çünkü çözümle de ilgileniyorum.
Http://books.sonatype.com/mvnref-book/reference/running-sect-options.html#running-sect-verbose-option'a göre
Şu anda maven 3.1.x System.out oturum açmak için SLF4J kullanır. Günlük ayarlarını dosyada değiştirebilirsiniz:
${MAVEN_HOME}/conf/logging/simplelogger.properties
Sayfaya göre: http://maven.apache.org/maven-logging.html
Basit günlükçünün varsayılan günlük düzeyini, aşağıdaki gibi bir komut satırı parametresi aracılığıyla ayarlayabilmeniz gerektiğini düşünüyorum:
$ mvn clean package -Dorg.slf4j.simpleLogger.defaultLogLevel=debug
Ama işe yaramadım . Sanırım bu tek sorun, maven sınıf yolunda yapılandırma dosyasından varsayılan düzeyi alır. Ayrıca System.properties aracılığıyla birkaç başka ayar denedim, ancak hepsi başarısız oldu.
Github'da slf4j kaynağını burada bulabilirsiniz: slf4j github
Simplelogger'ın kaynağı: slf4j / jcl-over-slf4j / src / main / java / org / apache / commons / logging / impl / SimpleLog.java
Pleksus yükleyici simplelogger.properties
.
simplelogger.properties
değişim çalışma? org.slf4j.simpleLogger.warnLevelString
Ayar mvn compile
güncellemelerini uygun şekilde değiştirdiğimde , ancak ayarı yok sayıyor gibi görünüyor org.slf4j.simpleLogger.defaultLogLevel
. Ayrıca uyarmak veya hata ayarlamak için bile bilgi düzeyinde günlükleri.
mvn validate clean install | egrep -v "(^\[INFO\])"
veya
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\]"
findstr
düzenli hale getirebilecek normal ifade ve diğer seçenekleri destekliyor gibi görünüyor - ss64.com/nt/findstr.html
mvn validate clean install | findstr /V /R "^\[INFO\] ^\[WARN\]"
Bunu MAVEN_OPTS ile başarabilirsiniz, örneğin
MAVEN_OPTS=-Dorg.slf4j.simpleLogger.defaultLogLevel=warn mvn clean
System özelliğini doğrudan komut satırına koymak yerine. (En azından maven 3.3.1 için.)
Tüm maven çağrılarında oturum açmanızın günlüğe kaydedilmesini değiştirmek isteyip istemediğinizi ~/.mavenrc
ayarlamak için kullanmayı düşünün MAVEN_OPTS
.
help:evaluate
değerini yazdırmak için hedef çalışırken bazı uyarıları devre dışı bırakmaya çalışıyordum project.version
ve bu çıktı (olsa da görünmüyor slf4j
) da kapatıldı.
Logback kullanıyorsanız, bu logback-test.xml
dosyayı src/test/resources
dizine koymanız yeterlidir :
<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>
bunu komut satırının kendisinde aşağıda kullanarak yapabilirsiniz
-e for error
-X for debug
-q for only error
Örneğin :
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]
Ne yazık ki, maven 3 ile bile bunu yapmanın tek yolu kaynak kodunu düzeltmektir.
İşte bunun nasıl yapılacağı ile ilgili kısa talimat.
Klon veya çatal Maven 3 repo: "git clone https://github.com/apache/maven-3.git "
Org.apache.maven.cli.MavenCli # günlüğünü düzenleme ve değiştirme
cliRequest.request.setLoggingLevel( MavenExecutionRequest.LOGGING_LEVEL_INFO );
için
cliRequest.request.setLoggingLevel( MavenExecutionRequest.LOGGING_LEVEL_WARN );
Geçerli anlık görüntü sürümünde 270. satırda
Sonra sadece "mvn install" komutunu çalıştırın, yeni maven dağıtımınız "apache-maven \ target \" klasöründe bulunacaktır
Referans için bu farka bakın: https://github.com/ushkinaz/maven-3/commit/cc079aa75ca8c82658c7ff53f18c6caaa32d2131
getLog()
, yapılandırmanızla yaşayabiliyorsanız , mojo'unuz maven logger'a güvenmelidir .
En basit yol, destekten yararlanmak için Maven 3.3.1 veya üstüne yükseltmektir ${maven.projectBasedir}/.mvn/jvm.config
.
Ardından tüm kaydedicileri veya belirli günlükleri yapılandırmak için Maven'in SL4FJ'sinin SimpleLogger desteğindeki herhangi bir seçeneği kullanabilirsiniz . Örneğin, warn
oturum açacak şekilde yapılandırılmış bir PMD dışında, tüm uyarı düzeylerinin nasıl yapılacağı aşağıda açıklanmıştır error
:
cat .mvn/jvm.config
-Dorg.slf4j.simpleLogger.defaultLogLevel=warn -Dorg.slf4j.simpleLogger.log.net.sourceforge.pmd=error
Maven ile oturum açma hakkında daha fazla bilgi için buraya bakın .
Maven sunfire eklentisinin 2.20.1 sürümünü kullandığımda fark ettim , tüm uyarılar bir döküm dosyasına yazılır. Örneğin/myproject/target/surefire-reports/2017-11-11T23-02-19_850.dumpstream
-B, --batch-mode
veya daha az ayrıntılı-q
yapacaktırmvn
.