我们必须定期设置新的构建环境,这个过程似乎并不那么简单。今天我有一台新的构建机器,第一个Maven构建速度很慢,我想澄清为什么性能如此糟糕。但是怎么做呢?
我们的背景是:
settings.xml
)所有工具应该协同工作,特别是存储库链应该是:
因此,当Maven构建需要解决依赖关系时,它将首先在本地Maven仓库中查找,然后在本地Artifactory仓库中查找,然后在中央Artifactory仓库中查找,然后才在互联网上查找。
我们通常必须使用代理连接到互联网,我们的内联网不需要它。
第一个版本(Maven Hello World)大约需要45分钟。在那个时候,所有引导都在发生,但我想通过使用我们的存储库链(中央存储库已经充分填充),构建会更快。所以我认为调试的重点将是网络,本地构建不是问题。因此,正在考虑Maven和Artifactory的配置和交互。
你如何调试这样的环境?我可以访问构建机器(如sudo)和中央存储库,但我不知道如何启动,要证明什么,在哪里查看。那么您的经验是什么,您希望分享哪些提示和技巧?
答案 0 :(得分:0)
以下是我迄今为止所做的一些事情。如果您有其他建议,欢迎您!
我怀疑存储库链是邪恶的来源,所以我首先解决了这个问题。原因是:
如果在本地找不到某些东西,那么存储库链很有意思。以下是确保这种情况的步骤:
wget
之类的工具来索取资源。这导致我想做的以下测试。每当我确保满足之前的先决条件时:
询问https://<my-project-artifactory>/repo/<my-pom>
。期望:
结果:查找一个简单的POM需要~30秒。这太过分了。
删除代理。使用wget
,有一个选项--no-proxy
可以做到这一点。厚望:
结果:完全没有变化,因此代理不是原因。
询问https://<my-project-artifactory>/libs-snapshots-company/<my-pom>
。因此,将虚拟存储库更改为真正的远程存储库。期望:
结果:立即找到POM,因此30秒是Artifactory进行查找。但这可能是什么原因?
在Artifactory中删除了所有远程和虚拟存储库(仅留下我们的公司和缓存的Maven中心)。但请再次使用https://<my-project-artifactory>/repo/<my-pom>
。期望:
结果:POM瞬间出现,无法衡量。
然后我勇敢地开始构建(本地空缓存)。然后构建需要5秒(而不是同一天早上15分钟)。
所以我认为我现在已经更好地理解了可能出现的问题,还有很多问题需要解决。请将您的想法添加为答案,您将获得声誉!