我最近在工作中得到了一个新的Macbook Pro,并注意到在Maven2中构建我们的代码库需要大约15分钟,而我团队中的其他人使用稍微较旧的Macbook(但类似/相同的规格)在大约5分钟内构建。在四处询问之后,我在团队中找到了另外一个人,他的构建需要15分钟以上。我正在谈论一个新的代码检查,我们所有人都使用相同版本的Maven(2.2.1)和Java版本:1.6.0_29,从项目的根目录运行'mvn clean install'。我们两个慢速构建都在Lion(10.7.3)上,而5分钟构建的人在Lion或Snow Leopard上。我的机器有8GB内存和2.3 GHz i7,所以它似乎不应该是一个问题。 AFAIK,这款机器配备了Lion(而不是从Snow Leopard升级),所以我认为它不是从Snow Leopard升级而来的,似乎有些人有问题。我们慢速构建的都有5400转的驱动器,而其他大多数都有7200转的驱动器,但是,其中一个拥有5分钟构建的其他人拥有与我们完全相同的5400转驱动器...所以这样的规则出了那个理论。
我运行了内存测试(检出正常),在磁盘工具中运行磁盘验证和权限修复(修复了一些权限问题,但没有更改构建时间),禁用交换,确保filevault关闭,构建从不同的目录,都无济于事。一些有趣的观点让我怀疑操作系统问题:
我不确定此时还有什么可以尝试的,但我觉得我已经非常接近了。如果没有这么显着的差异,我不会那么担心,但在我的工作流程中,15分钟对5分钟是巨大的。将我的工作电脑交给Apple Genius家伙,我感到很不舒服,我们的IT人员不是Mac人。重新安装操作系统似乎是我在网上看到的答案,但这似乎有点过分和侵扰性。 (我知道这可能是一个OSX问题,而不是Maven问题,但Maven是我的基准。我没有注意到任何其他的缓慢,但很难说没有使用其他人的计算机)
有没有人遇到过这样的事情?关于尝试什么的任何想法?感谢
答案 0 :(得分:2)
在您的计算机和快速计算机上运行mvn -X ...
命令,并从日志文件中比较哪些任务/插件占用的时间最多。这应该给你一个起点。两个最慢的部分是文件系统扫描和网络访问,用于检查工件/依赖项/插件更新。
可以通过调整磁盘访问(例如,缓存或切换到SSD)来改进前者。
后者可以通过添加Maven存储库管理器来改进,例如Nexus或Artifactory,它们可以缓存和优化对所有远程Maven存储库的访问。