2013-09-30 17 views
8

Sto cercando di ottenere il netty-codec-hhtp che sta andando nel mio progetto di maven. Ho un Sonatype Nexus completamente standard configurato per le richieste proxy a Maven Central.Richiesta automatica del filtro di routing rifiutata - Nexus

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

Questo non riesce quando si costruisce utilizzando Maven. Se cerco manualmente nel Nexus lo trovo, ma se vado a scaricare il vaso mi dice:

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) 

Cosa ancora dire, Perché mi appare, e forse più importante, come fare Lo aggiusto? Sto usando Nexus 2.5.0-04 con Maven 3.0.4

Il download di altri artefatti sembra funzionare correttamente.

+0

come stai "scaricando" il vaso in modo da ottenere che il messaggio di errore? E quanto è aggiornato il download del file indice e del prefisso centrale? So anche che ci sono stati alcuni problemi di routing automatico corretti nelle versioni recenti, quindi testerei con 2.6.3-01 e vedrò se questo lo risolve. –

risposta

13

AGGIORNAMENTO: Si è verificato un problema con la configurazione CDN che ora dovrebbe essere risolta. I passaggi sottostanti per forzare e/o disabilitare la scoperta remota sono lasciati come riferimento.

Significa che il routing automatico per centrale è attivo e che le regole rilevate non contengono io.jetty come prefisso consentito.

Questo non dovrebbe accadere, in quanto la configurazione predefinita dovrebbe aggiornare le regole su base giornaliera (come si vede sullo screenshot sottostante, mostrando la configurazione di routing automatico predefinita per centrale).

Il rimedio è di forzare l'aggiornamento delle regole (ho controllato, il prefisso /io è tra le regole pubblicate da Central), o disabilitare completamente il rilevamento remoto.

passi provare come mostrato sotto: Schermate

Screenshot

+3

Ho dovuto disabilitare Discovery anche se ha funzionato correttamente. Download immediatamente funzionanti. – Eddie

1

Da Repository Management with Nexus - 6.4. Managing Routing:

Routing può essere considerato l'attività interne Nexus eseguire al fine di determinare, dove cercare un componente specifico in un repository Maven. Le informazioni di routing influiscono sulle prestazioni del recupero dei componenti e determinano la disponibilità dei componenti.
(...)
Il routing automatico viene gestito da Nexus su base repository.
(...)
Le informazioni di routing sono costituite dai due livelli principali della struttura di directory del repository e sono memorizzate in un file prefixes.txt. Esso permette di Nexus rotta automaticamente solo componente richiede con i corrispondenti valori GroupId ad un repository per evitare indice inutile o addirittura accesso repository remoto.

Dal Maven repo centrale contains that artifact presumo che le regole di routing automatico vieta download remoto per questo artefatto. Il messaggio di errore che hai postato suggerisce anche questo.

È possibile leggere come aggiungere una regola di routing sotto 6.4.2. Manual Routing Configuration. Se la mia ipotesi è corretta, questa situazione può essere risolta aggiungendo un tipo di regola inclusive con il percorso ^/io/netty/.* per il repository centrale.

+1

Grazie, ma ancora non funziona. Se ignoro il nesso funziona bene, ma questo tipo di sconfigge lo scopo di avere Nexus come proxy locale in primo luogo. La cosa più frustrante è che posso sfogliarlo bene attraverso il Nexus, ma poiché è "non localmente memorizzato nella cache", ricevo invece un messaggio di errore. Mi rendo conto che possiamo sempre installare manualmente manualmente l'artefatto nel repository di rilascio di nexus, ma ciò sconfigge ulteriormente il punto. Devo riavviare il nuovo Nexus o qualcosa per rendere effettive le regole di routing? –

+0

Non ho installato Nexus, ma per quanto possa ricordare non è necessario riavviare, un salvataggio dovrebbe essere sufficiente. Prova comunque, non hai nulla da perdere. Sono d'accordo che bypassare Nexus o installare manualmente non è la soluzione. Potresti provare con una regola esclusiva anche per i repository locali. – linski

1

ho affrontato lo stesso problema quando configurazione di un ponte tra 2 Nexus.

Nel primo:

  1. ho aggiunto 2 procura pronti contro termine, il targeting 2 gruppi pubblici di pronti contro termine nel secondo,
  2. poi aggregano quei 2 repos proxy in un nuovo gruppo,
  3. che finalmente ho aggiungevo alla lista dei pronti contro termine del primo gruppo repo pubblica Nexus

Utilizzando il primo Nexus, ogni volta che ho richiesto una dipendenza presente solo nel 2 °, ho incontrato l'eccezione Automatic routing filter rejected remote request for path....

Come citato da Tamas, questo problema viene dal Routing >> Discovery caratteristica che è stata attivata nei miei 2 pronti contro termine del proxy, che sono stati rivolge gruppi repository remoti Nexus. Una volta disabilitato, il problema è stato risolto.

La spiegazione esatta di questa necessità è in qualche modo spiegato nella documentazione ufficiale Sonatype per Repository Management with Nexus, nel capitolo 6.4.1 su automatico Routing:

La scheda Routing per un repository di proxy visualizzato in figura 6.18, "Routing automatico per un repository proxy" contiene la sezione Discovery . Visualizza lo stato e un messaggio più dettagliato sull'accesso al file prefisso . Il campo Last run visualizza la data e l'ora di l'ultima esecuzione del discovery del file prefisso. Tale esecuzione può essere attivata premendo il pulsante Aggiorna ora. In caso contrario, l'Intervallo Aggiornamento consente di attivare una nuova scoperta ogni uno, due, tre, sei, nove o dodici ore o come esecuzione giornaliera o settimanale.

[...]

Per un archivio proxy, il file prefix è scaricato dalla repository remoto o una generazione viene tentata dal raschiando il repository remoto . Questa generazione non viene tentata per il remoto gruppi di repository Nexus , poiché sono di natura troppo dinamica e non devono essere inviati direttamente a. Scraping di repository hosted o proxy come come repository basati su Subversion.

saluti, Thomas