首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Maven 2.2.1优化项目构建时间

Maven 2.2.1优化项目构建时间
EN

Stack Overflow用户
提问于 2012-08-26 01:27:01
回答 4查看 237关注 0票数 2

我正在思考一个想法,想向开发人员社区提出一个问题。当我在一个大型JAVA项目中工作时,在实践中使用maven有许多惊人的好处。然而,项目正在快速发展,随着时间的推移,越来越多的模块出现,从而导致了巨大的构建时间,这对持续集成产生了影响。

问-有没有一些开箱即用的功能,可以让智能项目构建首先检查模块目标jar是否与位于本地maven存储库中的不同。如果后者是真的,那么maven可以继续到下一个模块,而不需要重新构建和重新部署相同的模块?

问候

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-08-26 04:35:28

最好的方法是切换到Maven3,它支持通过

代码语言:javascript
复制
mvn -T 3.0C clean package

还可以帮助构建已更改的内容,这可以通过Maven实现:

代码语言:javascript
复制
mvn -pl module -am package

此外,许多CI系统,如jenkins,也支持增量构建。此外,检查哪种类型的测试正在运行?你能并行运行单元测试吗?(maven-surefire-plugin)。这些单元测试是真正的单元测试,还是可能是一些集成测试?

票数 2
EN

Stack Overflow用户

发布于 2012-08-26 01:52:22

这个问题没有灵丹妙药。这是许多大型项目所面临的普遍问题。

CI通常是由SCM提交触发的,所以我认为有些东西总是会发生变化。

如果不知道您使用的是什么CI,模块是如何配置的等等,除了一些基础知识之外,我不能提供太多的建议。

1)确保您在CI中配置的模块是尽可能细粒度的-即尽可能小的构建单元。这意味着单次提交不需要重新构建大量代码。

2)开发者习惯:只提交一个完整的工作单元。这就是Git的意义所在。开发人员在本地提交,然后仅在工作单元完全完成时才推送到主程序。这减少了下游CI构建。

3)查看您在Maven中使用的报表和模块。有些人永远也跑不动。你真的需要他们全部吗?

票数 1
EN

Stack Overflow用户

发布于 2012-08-27 01:52:55

问题-有没有一些开箱即用的功能,可以让智能项目构建首先检查模块目标jar是否与位于本地maven存储库中的不同?

我所知道的唯一的“聪明”是在你不需要的构建中跳过“干净”阶段-这样一些源代码就不会被编译,或者不必要地重新生成资源。尽管如此,项目仍将重新打包。

您还可以考虑将一些模块排除在不同的开发周期中(除非您确实需要在每个版本中对所有模块进行更改)。然后,更改频率较低的模块可以作为来自存储库的依赖项包括在内-它们将需要单独构建和部署。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12124155

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档