2013-09-30 63 views
8

我試圖讓netty-codec-hhtp進入我的maven項目。我有一個完全標準的Sonatype Nexus來設置代理請求到Maven Central。自動路由篩選器拒絕遠程請求 - Nexus

<dependency> 
    <groupId>io.netty</groupId> 
    <artifactId>netty-codec-http</artifactId> 
    <version>4.0.9.Final</version> 
</dependency> 

使用maven構建時會失敗。如果我的Nexus手動搜索它,我發現它,但如果我去下載JAR它告訴我:

404 - Not Found 
Automatic routing filter rejected remote request for path /io/netty/netty-codec-http/4.0.9.Final/netty-codec-http-4.0.9.Final.jar from M2Repository(id=central) 

是什麼,即使是說,爲什麼我得到它,也許更重要的是,怎麼辦我修復它? 我使用Nexus 2.5.0-04與Maven 3.0.4

下載其他工件似乎工作得很好。

+0

你是如何讓您得到該錯誤消息「下載」罐子?而且,最新的中心索引和前綴文件下載是如何實現的?另外我知道最近發佈的版本中有一些自動路由相關的問題,所以我會用2.6.3-01進行測試,看看是否能解決這個問題。 –

回答

13

UPDATE:原來這是一個現在應該解決的CDN配置問題。以下強制和/或禁用遠程發現的步驟僅供參考。

這表示中央自動路由處於活動狀態,並且發現的規則不包含io.jetty作爲允許的前綴。

這不應該發生,因爲默認配置應該每天更新規則(如下面的截圖所示,顯示中央的默認自動路由配置)。

補救措施是強制更新規則(我確實檢查過,前綴/io是規則中央發佈的規則),或完全禁用遠程發現。如下圖所示在屏幕截圖

嘗試步驟:

Screenshot

+3

即使成功,我也必須禁用Discovery。立即下載工作。 – Eddie

1

Repository Management with Nexus - 6.4. Managing Routing

路由可以被認爲是內部活動的Nexus以便確定,在何處尋找在Maven倉庫中的特定成分進行。路由信息會影響組件檢索的性能以及確定組件的可用性。
(...)
自動路由由Nexus根據每個存儲庫處理。
(...)
路由信息包含存儲庫目錄結構的前兩個級別,並存儲在prefixes.txt文件中。它允許Nexus 自動將具有相應groupId值的組件請求路由到存儲庫,以避免不必要的索引甚至遠程存儲庫訪問。

因爲Maven中央回購contains that artifact我假設自動路由規則禁止遠程下載該工件。您發佈的錯誤消息也提示了它。

您可以閱讀如何在6.4.2. Manual Routing Configuration下添加路由規則。如果我的假設是正確的,則通過爲中央回購添加inclusive規則類型和^/io/netty/.*路線可以解決這種情況。

+1

謝謝,但它仍然無法正常工作。如果我繞過nexus它可以正常工作,但這種做法首先破壞了將Nexus作爲本地代理的目的。最令人沮喪的是,我可以通過nexus瀏覽它,但由於它是「本地緩存」,我得到一條錯誤消息。 我意識到我們總是可以手動將神器手動安裝到nexus發行版回購中,但是這會進一步破壞這一點。 是否必須重新啓動nexus或路由規則才能生效? –

+0

我沒有安裝Nexus,但儘管我記得沒有必要重新啓動,但保存應該足夠了。儘管如此,你沒有任何損失。我同意繞過Nexus或手動安裝不是解決方案。您也可以嘗試使用本地回購的專有規則。 – linski

1

我面臨着同樣的問題,當2周的Nexus之間配置的橋樑。

在第一:

  1. 我加入2-代理回購,靶向在第二2個公共回購基,
  2. 然後在新組聚合這些2個代理檔案庫,
  3. 我最後加入到第一的Nexus公共回購組

使用第一的Nexus的回購列表,每次我要求只存在於第2的依賴,我遇到了Automatic routing filter rejected remote request for path...例外。

正如Tamas提到的,這個問題來自Routing >> Discovery功能,該功能在我的2代理軟件倉庫中啓用,這是針對遠程Nexus存儲庫組一旦禁用,問題就解決了

的這一需求在某種程度上是官方Sonatype的文件中解釋了Repository Management with Nexus的自動路由確切的解釋,在6.4.1:

路由選項卡的代理庫圖顯示6.18, 「代理存儲庫的自動路由」包含發現 部分。它顯示狀態和有關 前綴文件訪問的更詳細的消息。最後一次運行字段顯示 前一次執行前綴文件發現的日期和時間。按下「立即更新」按鈕可以觸發此類執行。否則,更新 時間間隔允許您觸發一個,兩個,三個, 六個,九個或十二個小時或作爲每日或每週執行的新發現。

[...]

對於代理庫,前綴文件是從 遠程倉庫下載或生成是由刮遠程 庫嘗試。 這一代不會嘗試遠程Nexus 存儲庫組,因爲它們本質上是動態的,不應該 直接代理。支持託管或代理存儲庫 作爲基於Subversion的存儲庫。

問候, 托馬斯