我怎样才能加快我maven2的构建?

问题描述 投票:31回答:8

我使用的是本地artifactory的以代理请求,但构建和测试阶段仍然是一个有点慢。这不是实际的编译和缓慢的测试,它是在maven2的框架的“热身”。有任何想法吗?

maven-2
8个回答
23
投票

有一些可能性,以优化一些构建任务。例如,“干净”的任务可以从几分钟到刚刚毫秒使用简单的把戏进行优化 - 重命名“目标”文件夹而不是删除。

要获取详细信息,如何做到这一点参考Speed up Maven build


9
投票

我不知道你用的是什么版本的Maven的,我想2,但我会给我使用Maven的1.x的加快,使事情打造一点点更快。

这些将叉JUnit测试到一个新的进程(当您使用测试等环境变量也有助于并给出了测试一点点更多的内存。

-Dmaven.junit.fork=true
-Dmaven.junit.jvmargs=-Xmx512m

这叉可能加快速度为您编译

-Dmaven.compile.fork=true

我希望这能帮助一点,试试吧。

另请参阅get more speed with your maven2 build


7
投票

如果您正在使用Maven 3(qazxsw POI),您也可以按照此qazxsw POI。在我的情况,结果是:

正常执行:

$ mvn -version

与并行处理(4个线程):

guide

并行处理(每芯2个线程)

$ mvn clean install 
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 03:05 min
[INFO] Finished at: 2015-07-15T11:47:02+02:00
[INFO] Final Memory: 88M/384M

正如我们所看到的,区别它几乎一分钟,附近的速度提高20-30%。


4
投票
  1. 调整存储器配置,以最佳为例如:添加此行到mvn.bat设置MAVEN_OPTS = -Xmx512m -XX:MaxPermSize参数=256米
  2. 行家的清理阶段,通常删除目标文件夹。相反,如果我们重命名目标文件夹中的清洗阶段会快很多。<qazxsw POI>
  3. -Dmaven.test.skip =真会跳过测试执行。
  4. 添加-Denforcer.skip = true来MVN命令行参数(这是强制执行的Maven的版本,JDK等,我们可以在初始运行后跳过)
  5. 分析,Javadoc生成,源包装:在构建阶段禁用非关键业务。这将节省大量的时间。
  6. 产卵新流程还可以帮助在时间的改善-Maven.junit.fork = TRUE(叉JUnit测试到一个新的进程)-Dmaven.compile.fork = TRUE(叉编译) 希望能帮助到你。

3
投票

您可以使用$ mvn -T 4 clean install [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 02:22 min (Wall Clock) [INFO] Finished at: 2015-07-15T11:50:57+02:00 [INFO] Final Memory: 80M/533M 跳过单元测试。这将加快构建


2
投票

我发现,解析反应堆项目是比单聚甲醛项目显著慢。如果你的版本是反应堆(多模块)和你的开发人员不工作,同时所有的模块,你可以删除父POM并单独编译它们,解决使用本地回购的依赖关系。缺点是,你需要为安装或部署模块其家属看到的变化。

此外,你可能想看看新的Maven 2.1 M1其中包含了一些显著的速度提升。

如果没有这些帮助,张贴关于您的项目配置(模块结构和插件),命令行参数和硬件配置(内存和磁盘)的更多细节。与-X运行Maven也可能会显示它在哪儿考虑它的时间。


1
投票

我会使用本地安装的Nexus。


0
投票

首先,你应该使用类似$ mvn -T 2C clean install [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 02:12 min (Wall Clock) [INFO] Finished at: 2015-07-15T12:00:29+02:00 [INFO] Final Memory: 87M/519M [INFO] ------------------------------------------------------------------------ 您的构建次作进一步分析和识别是最耗时的候选人。

在测试了纺每一个测试数据库H2?是抽空外部JAR文件的下载?这将指导在何处集中调查。只需将走快的标志,因为他们将已经默认包含通常不工作,你不想与跳跃标志牺牲你的测试。

© www.soinside.com 2019 - 2024. All rights reserved.