用于测试与 repo 的连接的 Maven 标志?

问题描述

使用 Anypoint Studio 进行 Mulesoft API 开发,我最近注意到一个我想尝试解决的问题。我们使用 Maven/pom 文件来包含项目所需的依赖项,并在本地运行/构建应用程序时填充本地 .m2 存储库。

我们的一些自定义依赖项位于防火墙后面的工件中(不在办公室时)。如果我不在 VPN 上,它不会连接到 artifactory,因此无法获取依赖项。

这个问题是当我没有意识到我不在网络上时,它会尝试连接到存储库,最终点击 Cloudflare 登录页面。 Maven 出于某种原因将此 HTML 保存为依赖项 pom.xml 的内容,从而破坏了它。

当 API 然后尝试运行时,依赖项无效,因此提示我然后连接,重建 repo 等。

问题:

是否有标志或方法可以检查存储库是否能够连接并具有有效的 POM 文件,如果没有,警告/无法构建?我假设如果连接完全失败并抛出某种 400 错误,这可能会发生。但是,因为它提示登录页面,所以它会收到 200 并继续。

有什么办法可以解决这个问题,只是不要忘记连接到 VPN?

解决方法

除了@khmarbaise 链接到的帖子之外,您还可以使用 -C 选项从命令行强制校验和验证,这是 --strict-checksums 的别名。似乎并非所有服务器都提供校验和,因此您必须对其进行测试。

我过去曾见过此错误。为什么 Maven 首先允许存储“损坏”的 pom 文件,这超出了我的理解。