自动路由过滤器拒绝远程请求 - Nexus

时间:2013-09-30 11:02:02

标签: maven netty nexus

我正在尝试让netty-codec-hhtp进入我的maven项目。我有一个完全标准的Sonatype Nexus设置来代理Maven Central的请求。

<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

下载其他工件似乎工作正常。

2 个答案:

答案 0 :(得分:13)

更新:结果证明CDN配置存在问题,现在应该解决了。强制和/或禁用远程发现的以下步骤可供参考。

这意味着Central Routing for Central处于活动状态,并且发现的规则不包含io.jetty作为允许的前缀。

这不应该发生,因为默认配置应该每天更新规则(如下面的屏幕截图所示,显示中央的默认自动路由配置)。

补救措施是强制更新规则(我确实检查,前缀/io是中心发布的规则之一),或完全禁用远程发现。

尝试屏幕截图中显示的步骤:

Screenshot

答案 1 :(得分:1)

来自Repository Management with Nexus - 6.4. Managing Routing

  

路由可以被视为Nexus执行的内部活动,以确定在Maven存储库中查找特定组件的位置。路由信息会影响组件检索的性能以及确定组件的可用性。   
(...)
自动路由由Nexus基于每个存储库处理。
(...)
路由信息由目录的前两级组成存储库的结构,存储在prefixes.txt文件中。它允许Nexus 自动将具有相应groupId值的组件请求自动路由到存储库,以避免不必要的索引甚至远程存储库访问。

由于Maven central repo contains that artifact我认为自动路由规则禁止远程下载该工件。您发布的错误消息也表明了这一点。

您可以阅读如何在6.4.2. Manual Routing Configuration下添加路由规则。如果我的假设是正确的,那么应该通过为inclusive路由添加^/io/netty/.*规则类型来解决这种情况。