2

mvn build的时候控制日志输出

 7 months ago
source link: https://bajie.dev/posts/20240123-mvn_build_log/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

Mvn Build的时候控制日志输出

2024-01-23 2 分钟阅读

最近在弄jenkins的自动打包部署

出现个问题,项目是用的mvn,打包的时候,如果是在控制台下还好。

如果是在jenkins下,看console output,往中心仓库artifactory提交包的时候,会显示下面一堆:

Uploaded: http://xxx:8081/artifactory/libs-release-local/abc/maven-metadata.xml (315 B at 17.1 KB/sec)  
Uploading: http://xxx:8081/artifactory/libs-release-local/abc/d/admin-9.1.war  
20000/21969 KB  
20002/21969 KB  
20004/21969 KB  
20006/21969 KB  
20008/21969 KB  
20010/21969 KB  
20012/21969 KB  
20014/21969 KB  
20016/21969 KB  
20018/21969 KB  
20020/21969 KB  
20022/21969 KB  
20024/21969 KB  
20026/21969 KB  
20028/21969 KB  
20030/21969 KB  
20032/21969 KB  
20034/21969 KB  
20036/21969 KB  
20038/21969 KB  
20040/21969 KB  
20042/21969 KB  
20044/21969 KB  
......

长度无比长,垃圾东西。如何将之屏蔽呢?

首先去修改mvn的日志级别,缺省是INFO,提高到WARN:

MAVEN_OPTS=-Dorg.slf4j.simpleLogger.defaultLogLevel=warn mvn -ff  clean install  

我去,INFO是都没了,但是这个居然还在!!!!

查了下java的日志优先级:

ALL < DEBUG < INFO < WARN < ERROR < FATAL < OFF  

上面只有FATAL和OFF了,说明这个是个副产品,不是mvn控制的,而是上传的时候产生的。

没办法了,祭出shell大法:

mvn -ff  clean install | egrep "(^\[INFO\])"  

把开头是[INFO]的显示出来,如果不够,还可以加上[DEBUG]

mvn -ff  clean install | egrep "(^\[INFO\]|^\[DEBUG\])"  

如果要取反,不显示以[INFO]和[DEBUG]打头的那些行:

mvn -ff  clean install | egrep -v "(^\[INFO\]|^\[DEBUG\])"  

最后,mvn全静默,只有出错才显示的方式:

mvn -ff -q clean install  

这下世界都安静了。

再说一下 mvn build 参数的调试:

mvn的parent pom里面指定了local file repo

    <repositories>
        <repository>
            <id>project.local</id>
            <name>project</name>
            <url>file://${project.basedir}/../repo</url>
        </repository>
    </repositories>

而且指定了-s setting.xml,里面也有artifactory的repos. 在子模块module里不知道是否正常获得了。

执行下面命令就可以了:

mvn help:evaluate  
${project.repositories}

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK