Maven 的仓库代理可以在不配置测试所发出的 HTTP 请求的情况下获取依赖。请在测试 JVM 中配置客户端。

如果该客户端遵循 Java 的 HTTPS 代理属性,请将以下片段放入相应 Surefire 插件的 configuration 元素中:

<systemPropertyVariables>
  <https.proxyHost>proxy.example</https.proxyHost>
  <https.proxyPort>8080</https.proxyPort>
</systemPropertyVariables>

请替换示例端点。对于面向允许公共中间人的公共目标的测试,HTTP 代理列表提供主机和端口候选。主机和端口是分开的值;请选择与目标方案和库相匹配的属性族。而使用显式代理对象构建的客户端则需要其自己的配置接口。

Surefire 通常在分叉的 JVM 中运行测试。并非所有启动 Maven 的选项都会传递到该进程。对启动敏感的系统代理发现需要启动时在测试 JVM 上提供相应选项。即使测试共享同一进程,库也可能忽略 Java 的默认代理属性。

让内部直连目标由合适的绕过规则覆盖,将代理身份验证与目标身份验证分开,并保持证书验证启用。禁用分叉会改变测试的执行方式;更换依赖镜像会改变仓库解析。两者都不能提供缺失的测试客户端路径。复制所有系统属性也可能泄露机密。

如果仍有失败,请记录测试 JVM、HTTP 库、目标、所选代理和第一个失败阶段。这些观察指向测试配置,同时让正常工作的仓库下载保持可理解。

相关文章