2

我所在的团队已经对我们的项目进行了 maven 化,并将 TDD 作为一种生活方式,但由于项目的庞大规模和我们的测试数量,我们的构建大约需要 15-20 分钟。我们拥有和我们一样多的测试覆盖率真是太棒了,但这并不是我们想要的快速转变。

当我们进行完整构建时,会有页面、页面、页面和页面发送到控制台,我知道写入控制台的成本可能很高。有没有办法调整maven 以减少一些输出?这甚至是一个问题,还是我应该寻找其他方法来缩短我们的构建时间?

4

2 回答 2

5

您假设写入控制台是瓶颈。是由 maven 编写的(例如许多插件调用、记录正在执行的测试)还是由我们自己的代码编写的?

如果您的代码输出过多,那么您应该在src/test/resources目录中部署一个日志配置文件(Log4j、Logback 等)并禁止所有日志输出。

如果您对 Maven 本身编写的内容感到困扰,请使用以下-q标志运行它:

-q,--quiet 安静的输出——只显示错误

这至少可以让您验证写入控制台是问题所在(我不太确定)。

于 2013-03-06T14:04:58.587 回答
0

您是否也考虑过检查是否可以并行化您的 Maven 构建?默认情况下,Maven 不会利用硬件的全部功能。它按顺序而不是并行构建所有模块。您可以通过 Maven 命令检查以分析您的项目,包括依赖关系图,并在可能的情况下并行构建项目。您可以指定用于构建项目的确切线程数,也可以使用参数的可移植版本,并根据机器上可用的 CPU 指定线程数。

mvn -T 4 install -- 将使用 4 个线程

mvn -T 1C install -- 每个可用的 CPU 内核将使用 1 个线程。

虽然您的项目可能不容易并行构建,但值得一试,但速度提升可能很大。每个 CPU 内核使用一个线程是一个很好的默认设置。

于 2018-10-09T12:40:37.750 回答