maven构建太长了

Nab*_*bil 6 java spring spring-mvc maven spring-batch

我们的应用程序的全局版本(30个Maven模块)花费了太多时间(15分钟)我们进行了单元测试和集成测试.

整合时间由集成测试消耗(60%).

技术包括:spring,spring mvc,Spring batch ......当然还有Maven.

因此,我们的开发人员没有动力保持这种做法(在提交之前全部构建)

我想增加构建时间,所以我测试了很多方法:

  • Parralal构建:mvn -T 1C ==> ko,我们消耗开发者机器的所有资源,因此在构建期间开发人员不能做任何事情.
  • 通过配置文件组织模块(前端,批处理,连接器,公共)==>我们的模块与我们的所有模型真正高度连接.

您是否有一些建议,一些经验表明如何在一个大项目中增强Maven的构建时间.

提前致谢.

har*_*ldK 7

不要在正常配置文件中运行集成测试,只允许开发人员在运行单元测试后检入.

在单独的服务器(构建服务器或持续集成服务器,如Jenkins或类似服务器)上运行集成测试.让构建服务器通过电子邮件发送检查错误代码的开发人员.

在我们的工作办公室,我们还有大屏幕显示每个模块的绿色/黄色/红色标志,因此每个人都可以看到模块是否不稳定(以及自上次稳定构建以来谁已检入).


小智 5

  1. 将内存配置调整为最佳,例如:将此行添加到 mvn.bat set MAVEN_OPTS=-Xmx512m -XX:MaxPermSize=256m

  2. mvn 的清理阶段通常会删除目标文件夹。相反,如果我们重命名目标文件夹,清理阶段会快得多。

  3. -Dmaven.test.skip=true 将跳过测试执行。

  4. 将 -Denforcer.skip=true 添加到 mvn 命令行参数(这是强制执行的 maven、jdk 等版本,我们可以在初始运行后跳过它)

  5. 在构建阶段禁用非关键操作:分析、javadoc 生成、源代码打包。这将节省大量时间。

  6. Spawnig 新进程也有助于时间改进 -Dmaven.junit.fork=true(将 junit 测试分叉到新进程中) -Dmaven.compile.fork=true(分叉编译)

希望能帮助到你。


Tim*_*m B 1

拥有一个构建服务器,可以在有人签入后自动执行完整构建并运行测试。如果构建或测试失败,请立即以某种适当显着的方式进行标记,包括向进行签入的人员发送电子邮件。