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

ama*_*ent 7 java compilation build intellij-idea maven

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

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

  1. 一个小时/天的生成运行了多少次?
  2. 运行构建需要多少时间?
  3. 如果有可能的话,可以通过maven任务来解决这个问题 - 即清理/编译/测试/其他插件等.

一种方法可能是将maven输出转储到文件,然后有一个进程来读取这些/计算我想要的统计信息.我该怎么做呢?

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

A_D*_*teo 2

这个Maven Profile 项目可以帮助你。

只需在 ${M2_HOME}/lib/ext 上安装(复制)其最新版本的 jar,然后按如下方式执行构建

mvn clean install -Dmaven.profile
Run Code Online (Sandbox Code Playgroud)

将为您提供以下示例输出

    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
Run Code Online (Sandbox Code Playgroud)

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