如何在多模块项目中(配置文件)maven目标

如何在多模块项目中(配置文件)maven目标

问题描述:

我们有一个包含许多子模块的巨大项目。完整构建需要超过30分钟。如何在多模块项目中(配置文件)maven目标

我不知道这次是如何分配不同的插件/目标,例如测试,静态分析(FindBugs的,PMD,CheckStyle的,等...)

是否有可能以时间构建上看到(在两个维度:模块和目标)大部分时间都花在?

+0

相关问题http://stackoverflow.com/questions/5120470/how-不同阶段的执行时间 – artbristol 2011-06-10 12:09:58

我不认为有一种方法来确定特定目标的时间。你可以做的是分别运行特定的目标,看看他们需要多长时间。因此,不要执行运行所有测试,“checkstyle”等的“mvn install”,只要执行“mvn checkstyle:checkstyle”来查看特定模块需要多长时间。

当自动化服务器(continuum/jenkins/hudson)完成时,每次完成所有事情都很好,但是当您在本地构建时,有时最好能够编译。你可以做的一些事情是只有当你传递某个参数或者配置文件时才会运行静态分析目标。另一种选择是只有在maven.test.skip = false时才让它们运行。

如果您使用的是连续构建,请尝试每4小时或每天进行一次静态分析。

如果你运行像TeamCityJenkins (formerly Hudson) CI服务器构建,它会给你时间戳在构建过程中的每一步,你应该能够使用这些值来确定哪些目标/项目的花费大部分时间。

我不认为有任何内置的maven做到这一点。事实上,在artbristol发布的相关问题中,有一个指向Maven feature request for this functionality的链接。不幸的是,这个问题没有解决,我不知道它是否会被添加。

另一个可能的解决方案是编写自己的插件,它可以为您提供此构建元数据。

+1

Jenkins没有意识到目标/模块的个别时间安排。帮了很多 - 谢谢! – cs94njw 2013-06-06 10:03:10

的Maven的构建时扩展是一个Maven插件可以用来查看每个目标的时间:

https://github.com/timgifford/maven-buildtime-extension