2013-03-28 10 views
12

Sto sperimentando un po 'con il rilascio del mio software (non l'ho mai fatto prima) e finora sono stato in grado di eseguire la release di mvn: preparare. Come sto eseguendo rilascio: eseguire ottengo il seguente errore:release maven -> peer non autenticato

 
[INFO] [ERROR] Failed to execute goal org.apache.maven.plugins:maven-deploy-plug 
in:2.7:deploy (default-deploy) on project img2stl: Failed to deploy artifacts: C 
ould not transfer artifact nl.byterendition:img2stl:jar:0.9 from/to byterenditio 
n-releases (https://localhost:443/svn/repo/releases): peer not authenticated -> 
[Help 1] 

ho creato un repository svn protetto da password locale localhost: 443, così ho aggiunto il seguente alla mia settings.xml nel mio. cartella m2

modificato per includere la risposta di Edwin Buck:

<?xml version="1.0" encoding="UTF-8"?> 

<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" 
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
      xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd"> 

    <servers> 
     <server> 
      <id>byterendition-releases</id> 
      <username>username</username> 
      <password>password</password> 
     </server> 
     <server> 
      <id>byterendition-snapshots</id> 
      <username>username</username> 
      <password>password</password> 
     </server> 
    </servers> 
</settings> 

Questa è la sezione utile del mio pom:

<distributionManagement> 
    <repository> 
     <id>byterendition-releases</id> 
     <url>https://localhost:443/svn/repo/releases</url> 
    </repository> 
    <snapshotRepository> 
     <id>byterendition-snapshots</id> 
     <url>https://localhost:443/svn/repo/snapshots</url> 
    </snapshotRepository> 
</distributionManagement> 

Come posso convincere Maven ad accedere al repository svn?

Ok, come suggeriva Edwin Buck Non dovrei usare localhost, ma dato che non sono riuscito a farlo funzionare altrimenti ho pensato di provarlo usando un server SVN remoto che utilizzo per lavoro. Ora ho un errore diverso:

 
[INFO] [ERROR] Failed to execute goal org.apache.maven.plugins:maven-deploy-plug 
in:2.7:deploy (default-deploy) on project img2stl: Failed to deploy artifacts: C 
ould not transfer artifact nl.byterendition:img2stl:jar:0.9.5 from/to byterendit 
ion-releases (https://svn.science.ru.nl/repos/estens/releases/): Failed to trans 
fer file: https://svn.science.ru.nl/repos/estens/releases/nl/byterendition/img2s 
tl/0.9.5/img2stl-0.9.5.jar. Return code is: 409, ReasonPhrase: Conflict. -> [Hel 
p 1] 

Ancora una volta riesco ad accedere a questo repo da Eclipse. Qualcuno sa cosa sto sbagliando?

+0

È una cattiva idea cambiare la tua domanda originale come hai fatto, ora il thread non ha molto senso. –

risposta

2

tua voce nel settings.xml è per un ID del server di localhost ma si sta accedendo repository con id (s) di byterendition-releases e byterendition-snapshots.

Ciò significa che Maven non ricodificherà e assocerà le credenziali a questi due server, poiché hanno "identità" differenti. Sono necessarie le voci settings.xml per byterendition-releases e byterendition-snapshots.

Ora, se si è aggiunto una voce come

<server> 
     <id>byterendition-releases</id> 
     <username>user</username> 
     <password>password</password> 
    </server> 

Poi Maven avrebbe incontrato l'autenticazione sfida HTTPS per byterendition-releases con un nome utente di user e una password di password, perché ha una voce del server credenziale per byterendition-releases.

È inoltre necessario aggiungere una voce aggiuntiva per byterendition-snapshots oppure impostarla per avere lo stesso ID server come byterendition-releases.

--- A cura di tenere il passo con la domanda aggiornato ---

Si stanno raggiungendo per il repository con un URL localhost. Mentre questo potrebbe funzionare se il tuo repository si trova realmente sulla stessa macchina host, ci sono molti motivi per cui potrebbe non funzionare.

  1. Il repository SVN si trova su un server SVN remoto, pertanto non funzionerà quando si sviluppa in un ambiente diverso dal server remoto.
  2. Il server HTTP non è configurato per risolvere localhost esattamente nello stesso modo in cui potrebbe risolvere una richiesta esterna.

In entrambi i casi, localhost di fossa. Se non si riesce a ottenere un nome DNS stabile per la macchina, anche inserire un indirizzo IP è una scelta migliore.Se il tuo server SVN è su DHCP, investi il ​​tempo necessario per far funzionare DynamicDNS (ma in realtà, dovresti ottenere un IP statico per un server se puoi).

+0

Grazie, l'ho fatto, ma non ha aiutato, ho ancora lo stesso errore. Ho modificato il post per riflettere le impostazioni aggiornate.xml. Come posso verificare se maven utilizza effettivamente il file settings.xml per vedere se forse questo è il problema? – FinalArt2005

+0

Provare a eseguire Maven con l'opzione '-X' genererà molti dati che possono essere utili per determinare se ci si connette al server giusto, con o senza credenziali. Infine, se si ha accesso al server, controllare se si fallisce l'autenticazione sul back-end, poiché potrebbero esserci altri problemi di rete in gioco qui. –

+0

Hm, sembra che Maven stia utilizzando il file corretto: [DEBUG] Lettura delle impostazioni utente da C: \ Users \ username \ .m2 \ settings.xml – FinalArt2005

0

Sembra un problema SSL durante la connessione al server. Forse prima del controllo del nome utente e della password.

Hai configurato il server svn con autorizzazione client SSL? Ciò significa che è necessario inviare un certificato client al server.

56

Dalla versione 3.0.5 Maven controlla il certificato SSL sulle connessioni https. È possibile risolvere temporaneamente questa aggiungendo la riga di comando parametri

-Dmaven.wagon.http.ssl.insecure=true -Dmaven.wagon.http.ssl.allowall=true 

Installazione del certificato SSL nel vostro JRE dovrebbe definitivamente risolvere il problema.

documentazione ufficiale: http://maven.apache.org/wagon/wagon-providers/wagon-http/

+0

Questo è iniziato per me dopo l'aggiornamento a Mavericks su MacOSX, e questa risultò essere la soluzione: http://stackoverflow.com/questions/4428901/how-to-preserve-the-cacerts-keystore-on- mac-across-updates –

+3

Il plugin di rilascio di Maven non propaga le proprietà di sistema alla build di rilascio di Maven. Così si ha la necessità di aggiungere ' org.apache.maven.plugins Maven-release-plug -Dmaven.wagon.http.ssl.insecure = true -Dmaven.wagon.http .ssl.allowall = true ' a quelli settings.xml [vedi notatube.blogspot.nl] (http://notatube.blogspot.nl/2010/10/passing-properties-to -maven-release.html) – gerben

+0

Risolve anche il mio problema quando Gradle non riusciva a raggiungere il repository Maven. – hunyadym

0

ho avuto molti problemi di sicurezza dopo l'aggiornamento a OSX Mavericks

  • problema SSL con Amazon AWS
  • pari non autenticato con Maven ed Eclipse
  • trustAnchors il parametro deve essere non vuoto

Ho applicato questo aggiornamento JAVA e risolto tutti i miei problemi: http://support.apple.com/kb/DL1572?viewlocale=en_US

11

Fase 1. Scarica il certificato in formato DER * .cer (/X.509 .cert) file sul dir locale

(Puoi farlo dal tuo browser; Per Chrome Fare clic sul simbolo di blocco, Mostra ceritficate -> Copia su file)

Fase 2. importarlo a Java negozio di fiducia

\ Program_Files \ Java \ jdk1.6.0_45 \ jre \ lib \ sicurezza>% JAVA_HOME% \ jre \ bin \ keytool -v -alias mavensrv -import -file d: \ temp \ apacher.cer -keystore trust.jks

Fase 3. Dare il percorso di Maven come variabili d'ambiente

set MAVEN_OPTS = -Xmx512m -Djavax.net.ssl.trustStore =% JAVA_HOME%/jre/lib/secur ity/trust.jks -Djavax.net.ssl.trustStorePassword = changeit -Djavax.net.ssl.keyStore =% JAVA_HOME%/jre/lib/security/trust.jks -Djavax.net.ssl.keyStoreType = jks -Djavax. net.ssl.keyStorePassword = changeit

+0

Avevo eseguito i passaggi 1 e 2 prima di avere il rosso di questa risposta e aveva risolto alcuni problemi di '' 'MotivoParase: Proibito''' e' 'peer non autenticato'''. Successivamente il '' 'peer not authenticated''' è successo di nuovo e aggiungendo' '' -Djavax.net.ssl.trustStore =% JRE_HOME% \ lib \ security \ cacerts -Djavax.net.ssl.trustStorePassword = changeit''' didn lo abbiamo risolto Grazie al tuo passaggio 3 ho aggiunto '' '-Djavax.net.ssl.keyStore =% JRE_HOME% \ lib \ security \ cacerts -Djavax.net.ssl.keyStorePassword = changeit''' troppo risolvendo i miei problemi. (Dove '' 'JAVA_HOME = C: \ Programmi \ java \ jdk1.7.0_25''' e' '' JRE_HOME =% JAVA_HOME% \ jre''') – taringamberini

+0

Questo ha funzionato per me. Altre istruzioni possono essere trovate qui: https://maven.apache.org/guides/mini/guide-repository-ssl.html Addizionalmente, se il certificato della tua azienda non è firmato (non è sicuro), devi aggiungere quanto segue opzioni comunque '-Dmaven.wagon.http.ssl.insecure = true -Dmaven.wagon.http.ssl.allowall = true -Dmaven.wagon.http.ssl.ignore.validity.dates = true' –

3

fornisce gli strumenti necessari e fornisce istruzioni passo passo su come importare un certificato remoto nell'archivio certificati a livello di sistema.

1

Ho trovato che la versione di Java può fare la differenza qui.

Con Maven 3.0.5 Stavo ricevendo questo errore con Java 6, ma il passaggio a Java 7 (o più recente) lo ha risolto per me.

+0

Sono su Java 7 e Maven 3.3, ho ancora lo stesso problema –

0

Utilizzo Maven 3.5.3 e ho scelto di risolvere temporaneamente questo problema SSL aggiungendo i parametri della riga di comando in base alle risposte precedenti. Ma il formato dei parametri sembra leggermente cambiato.

Mi dispiace, non posso commentare la risposta di @Alex Punnen, quindi devo scrivere una nuova risposta.

Problemi correlati