如何监控&记录构建(编译/测试)时间?

时间:2015-10-09 08:27:34

标签: java build maven compilation intellij-idea

我在一个大型的Java项目上工作。我们使用maven作为构建工具,并使用Intellij(14)作为我的IDE。

目前,如果我构建整个项目(约15个模块),大约需要3分钟。由于我们使用代码的方式(即使在开发中),我最终经常进行完整的构建。在“测量得到的东西得到管理”的基础上,我希望能够监控/记录:

  1. 构建运行每小时/每天多少次?
  2. 运行构建需要多长时间?
  3. 如果有可能,可以通过maven任务来解决这个问题 - 即清理/编译/测试/其他插件等。
  4. 一种方法可能是将maven输出转储到文件,然后有一个进程来读取这些/计算我想要的统计信息。我该怎么做呢?

    为了清楚起见,我不是要求就如何减少构建周期运行时提出意见/建议。我们已经在这方面做了相当多的工作,并且正在继续努力 - 事实上,我真的在寻找一种方法来监控我们在这方面的有效进展。

1 个答案:

答案 0 :(得分:1)

This Maven Profile项目可以帮助您。

只需在$ {M2_HOME} / lib / ext上安装(复制)其latest版本jar,然后按以下步骤执行构建

mvn clean install -Dmaven.profile

将为您提供以下示例输出

    com.sample:test:0.0.1-SNAPSHOT

  clean 175ms
    org.apache.maven.plugins:maven-clean-plugin:2.5 (default-clean) 175ms

  process-resources 336ms
    org.apache.maven.plugins:maven-resources-plugin:2.6 (default-resources) 335ms

  compile 1s 2ms
    org.apache.maven.plugins:maven-compiler-plugin:2.5.1 (default-compile) 1s 2ms

  process-test-resources 9ms
    org.apache.maven.plugins:maven-resources-plugin:2.6 (default-testResources) 9ms

  test-compile 59ms
    org.apache.maven.plugins:maven-compiler-plugin:2.5.1 (default-testCompile) 59ms

  test 1s 83ms
    org.apache.maven.plugins:maven-surefire-plugin:2.12.4 (default-test) 1s 83ms

  package 352ms
    org.apache.maven.plugins:maven-jar-plugin:2.4 (default-jar) 352ms

然后,您需要有一个用于数据累积的更多层(脚本?),以便获得交叉构建统计信息。但是,它已经回答了你的第三个问题,这可能是一个好的开始。