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 秒或更短?!?/p>

TA貢獻1777條經驗 獲得超10個贊
讓我建議一個替代解決方案:
在本地網絡中設置 Nexus 或 Artifactory 服務器。讓您的構建貫穿其中。它將緩存所有使用過的工件,從而大大降低遇到網絡問題的風險。
添加回答
舉報