因為我的一個測驗游樂場專案需要來自 Maven Central 以外的存盤庫的一些依賴項,所以我將其添加到我的 POM 中:
<repository>
<id>jenkins-releases</id>
<name>Jenkins Releases</name>
<url>https://repo.jenkins-ci.org/releases/</url>
<releases>
<updatePolicy>never</updatePolicy>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
這在本地有效,但不適用于 GitHub 作業流程,請參見例如此構建日志。在每個構建矩陣日志中,都有相同的錯誤:
org.eclipse.aether.transfer.NoRepositoryConnectorException:
Blocked mirror for repositories:
[repo.jenkins-ci.org (http://repo.jenkins-ci.org/public/, default, releases snapshots)]
我很困惑,不是因為 Maven 3.8.1 阻止了 HTTP URL,這是一個眾所周知的事實,而是因為我配置https://了http://. 那么,為什么 Maven 仍在嘗試決議未加密的 URL?服務器上是否有某種我不知道的重定向?一個curl -v -L電話沒有發現任何可疑的東西,我也可以在 Web 瀏覽器中正常瀏覽 HTTPS 下的存盤庫 URL。
我知道這個問題,但答案并不能幫助我理解手頭的問題。所以不要快速判斷這個是重復的,因為它不是關于如何在 Maven 3.8.1 中禁用 HTTP 阻塞,而是關于為什么我什至不使用 HTTP 存盤庫時會遇到這個問題。
因為它只發生在 GitHub Actions 上,所以這是 GitHub 特有的問題嗎?他們會阻止我的本地作業站不阻止的任何內容嗎?
uj5u.com熱心網友回復:
在我更好地理解了這個日志行之后,我發現了原因:
Failed to collect dependencies at
org.jenkins-ci.main:jenkins-core:jar:2.102
-> org.jenkins-ci:trilead-ssh2:jar:build-217-jenkins-11
-> org.connectbot.jbcrypt:jbcrypt:jar:1.0.0:
Failed to read artifact descriptor for org.connectbot.jbcrypt:jbcrypt:jar:1.0.0:
Could not transfer artifact org.connectbot.jbcrypt:jbcrypt:pom:1.0.0
from/to maven-default-http-blocker (http://0.0.0.0/):
Blocked mirror for repositories:
[repo.jenkins-ci.org (http://repo.jenkins-ci.org/public/, default, releases snapshots)]
我跟蹤了依賴項,檢查了相應的 POM,確實在 POM 中trilead-ssh2我看到了一個普通的 HTTP 存盤庫配置。因此,錯誤的不是我自己的配置,而是依賴項的配置。
可能,定義一個抑制默認封鎖的虛擬鏡像會有所幫助,但在我的情況下,我可以升級jenkins-core到不再依賴于 POM 中具有 HTTP 存盤庫的庫的更新版本。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/429869.html
