4 回答
TA贡献1810条经验 获得超4个赞
我在 Gitlab CI/CD 中遇到了类似的问题。这似乎已经解决了这个问题:
-Dmaven.wagon.http.retryHandler.count=3
从 3.2 版开始,可以使用系统属性配置重试处理程序:
...
maven.wagon.http.retryHandler.count
= 默认或标准实现的重试次数。
此处描述了其他 HTTP 客户端设置:https ://maven.apache.org/wagon/wagon-providers/wagon-http/
编辑:正如 keiki 在评论中指出的那样,3
似乎是默认值,因此尚不清楚设置此值将如何帮助。请用您的经验发表评论。
TA贡献1893条经验 获得超10个赞
由于保持活动连接被关闭,Maven 似乎在获取依赖项方面存在问题。当您mvn
在构建环境(Docker、Azure、Jenkins)中运行并且构建相当长(> 5 分钟)时,会发生这种情况。
使用这个 maven 标志来禁用 HTTP 请求的 keep-alive 并查看它是否解决了您的问题:
-Dhttp.keepAlive=false
其他人也提到过使用这个标志:
-Dmaven.wagon.http.pool=false
例如
mvn -Dhttp.keepAlive=false -Dmaven.wagon.http.pool=false clean package
TA贡献1828条经验 获得超4个赞
如果您在 NAT 后面的环境中运行,并且 NAT 超时很短,一种可能性是-Dmaven.wagon.httpconnectionManager.ttlSeconds=25
在 maven 中设置而不是禁用 http 连接池。
这在 apache/pulsar 存储库中使用:
env: MAVEN_OPTS: -Dmaven.wagon.httpconnectionManager.ttlSeconds=25 -Dmaven.wagon.http.retryHandler.count=3
在WAGON-545 的最后一条评论中,它说“Azure 用户应将 TTL 设置为 240 秒或更短。”
TA贡献1777条经验 获得超10个赞
让我建议一个替代解决方案:
在本地网络中设置 Nexus 或 Artifactory 服务器。让您的构建贯穿其中。它将缓存所有使用过的工件,从而大大降低遇到网络问题的风险。
添加回答
举报