Azure Artifacts Feed 比 Maven Central 慢得多

标签 azure maven azure-devops azure-pipelines

我正在 Azure DevOps 中开发一个项目,并且按照文档中的建议,我创建了一个 Artifacts Feed,其中 Maven Central 作为上游源来存储我的所有依赖项(我现在不需要发布 Artifact ) .

因此,我将本地 Maven 配置为从我的 Feed 而不是 Maven Central 获取所有依赖项,一切都正常,只是与 Maven Central 相比速度非常慢。

当我从本地计算机上的空 .m2 启动时,从 Maven Central 下载依赖项时需要 1 分 15 秒来构建我的项目,但从Feed(已包含所有依赖项)。

我可以接受这一点,因为所有内容的下载都只发生在第一个版本中。

但问题是,从 Azure Pipelines 构建项目时速度也更慢,这是我没想到的,因为它是从 Azure 到 Azure 的连接,并且位于同一组织内。在这种情况下,使用 feed 而不是 Maven Central 时至少需要两倍的时间。每次构建时,Azure Pipelines 都会为您提供一个新的 VM(我使用托管代理),因此每次都是如此,因此在这种情况下没有依赖项缓存。

这真的很烦人,因为到目前为止我的项目只是一个 HelloWorld,所以随着时间的推移它只会变得更糟。

根据 Maven 和 Azure 的说法,使用存储库管理器/提要是最佳实践,但此时我真的在考虑采用从 Maven Central 而不是我的提要获取所有内容的糟糕做法,至少在我的管道,以提高性能。

只有我一个人遇到这个问题吗?您对此有何看法?

最佳答案

最后,在最近深入研究 Azure Pipelines 的文档后,我发现有一种方法可以在运行之间缓存 Maven 存储库,因此它部分解决了我的问题,因为依赖项的完整下载只会发生一次。 Here is the doc对于那些有兴趣的人来说,这是一个问题。

关于Azure Artifacts Feed 比 Maven Central 慢得多,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62387138/

相关文章:

azure - 如何使用 Mesos/Kubernetes/Azure 来扩展和缩减可用虚拟机?

java - Netbeans 8 + maven + OpenJPA 部署到 TomEE - 增强失败

java - Eclipse/Maven 项目缺少必需的库/缺少 Artifact

azure - 新镜像未部署到 AKS

azure - 独立的暂存和生产管道

api - CosmosDB 中的 NULL 连续 token

azure - 使用 GraphAPI 的 AAD token 无法访问我自己的 Rest API?

Azure 门户中的 Azure 应用程序配置错误,无法添加配置

java - 如何在多 pom Maven 项目中固定传递依赖版本

azure - 如何使用较新版本的 Maven 在 Azure Pipelines 中进行 CI/CD 构建