【问题标题】:How to suppress Mavens INFO spam without suppressing normal output?如何在不抑制正常输出的情况下抑制 Mavens INFO 垃圾邮件?
【发布时间】:2013-02-12 03:54:28
【问题描述】:

我想使用 Mavens dependency:build-classpath 创建类路径:

$ mvn 依赖:build-classpath -Dmdep.prefix='lib' -f xpath.pom [INFO] 正在扫描项目... [信息] [信息] --------------------------------------------- ------------------------- [信息] 构建 xpath 1 [信息] --------------------------------------------- ------------------------- [信息] [信息] --- maven-dependency-plugin:2.1:build-classpath (default-cli) @ xpath --- [INFO] 依赖类路径: lib/serializer-2.7.1.jar:lib/xalan-2.7.1.jar:lib/xml-apis-1.3.04.jar [信息] --------------------------------------------- ------------------------- [信息] 构建成功 [信息] --------------------------------------------- ------------------------- [INFO] 总时间:2.251s [INFO] 完成时间:2013 年 2 月 26 日星期二 16:37:01 CET [INFO] 最终内存:5M/109M [信息] --------------------------------------------- -------------------------

如何在不抑制 build-classpath 的预期输出的情况下阻止 Mavens INFO 垃圾邮件?

我找到了答案,这说明我必须使用 -q 选项来抑制 INFO 输出。但是使用这个选项根本没有输出。

我知道我可以使用grep,但我想避免使用它。而且我不敢相信 Maven 不能开箱即用,因为它使依赖插件变得毫无用处。

这是完整的 pom:

4.0.0没有人xpath1版本> xalanxalan2.7.1版本> 依赖> 依赖> maven-dependency-plugin初始化复制依赖目标> ${project.basedir}/lib配置> 执行> 执行> 插件> 插件> 项目>

【问题讨论】:

    标签: maven


    【解决方案1】:

    我知道这对某些人来说并不理想,但您可以使用 outputFile 让它将输出放入文件中。

    【讨论】:

      【解决方案2】:

      INFO 是您真正需要查看的关于构建的最少量信息。这是它使用的默认日志记录级别。如果你告诉它不要使用INFO,那么 Maven 中的所有日志消息和你正在使用的插件将根本不会输出任何内容。

      【讨论】:

      • Maven 的错误在于,日志记录和输出之间没有分离。对于像 build-classpath 这样的函数,需要一种输出方式。大约 40 年前,有人发明了标准输出。 Maven的愚蠢是忘记它。顺便说一句:我无法想象我有什么理由真的需要看到这条线[INFO] ------------------------------------------------------------------------ 六次。
      • 问题是日志记录应该有更多的级别。但是,即使这样做了,大多数开发人员也不习惯使用细粒度的日志记录。最后,如果你问我,所有这些信息都会被打印出来,而且大部分信息都在信息和调试之间。
      • 输出一些东西不是记录一些东西的正确子集。这些操作彼此不同。
      • 请记住,Maven 不仅仅是一个构建工具,有很多插件和使用它们的人。我在这里是因为我正在使用带有 eclim 的测试插件。这很好,或者如果我的眼睛不必经常解析出大量无用的废话,那就太好了。而且我认为这种措辞是一个问题:我遇到的越多,我就越倾向于略读,我越略略,我变得越不专心,并且犯的错误让我付出了很多时间。
      【解决方案3】:

      在 linux 中,您可以在语句末尾添加 grep -v INFO

      $ mvn help:evaluate -Dexpression=project.parent.version |grep -v INFO 4.0.6-a $

      【讨论】:

      • 是的,但是 Maven 的想法是独立于平台的。如果我想转发grep,我也可以写一个 Makefile。
      猜你喜欢
      • 2010-11-01
      • 1970-01-01
      • 2014-03-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-07
      相关资源
      最近更新 更多