将代理设置加载到 ShrinkWrap 的 Maven Resolver 中
将代理配置加载到下载测试依赖的 resolver 中,而不是依赖单独的 Maven 调用。
import org.jboss.shrinkwrap.resolver.api.maven.Maven;
import org.jboss.shrinkwrap.resolver.api.maven.MavenResolverSystem;
MavenResolverSystem resolver = Maven.configureResolver()
.fromFile("/path/to/test-settings.xml");
后续 resolve 操作请使用这个 resolver。如果先构造它、随后又调用另一个默认 resolver,设置会留在未使用的对象上。Arquillian 测试可以在 Maven 已启动测试进程之后创建这个仓库会话,因此此前的命令行下载并不能建立它的输入。
所选文件使用 Maven settings 语法。在 settings 内,最小路由是:
<proxies>
<proxy>
<id>test-network</id>
<active>true</active>
<protocol>http</protocol>
<host>proxy.example.net</host>
<port>8080</port>
<nonProxyHosts>localhost|*.internal.example.net</nonProxyHosts>
</proxy>
</proxies>
替换路径、端点和预期的绕过项。主机不带 URL 前缀。如果允许这个测试 resolver 通过未经认证的公共中介访问公共仓库,HTTP 代理列表可提供候选的主机/端口值;请检查对实际仓库的访问。通过受支持的设置提供代理认证;仓库/服务器账户认证的是另一项服务。
受维护的实现会把设置模型中的活动代理条目加载到仓库会话的选择器中。默认值也会考虑用户/全局设置位置;当 IDE、构建代理或测试运行器使用另一个主目录时,显式文件会有帮助。
检查设置路径、仓库 URL,以及制品是否真的需要下载。已预热的仓库可能掩盖缺失的路由。resolver 获取部署制品;测试使用的 HTTP 客户端会发起另一个请求,需要自己的配置。对于 HTTP 客户端遵循 JVM 代理属性的 Maven Surefire 测试,请配置测试 JVM 的代理输入。