2010-04-28 7 views

risposta

14

Si dovrebbe essere in grado di specificare il percorso della chiave privata nell'elemento server nel settings.xml:

I repository per il download e La distribuzione è definita dallo repositories e distributionManagement elementi di il POM. Tuttavia, alcune impostazioni come nome utente e password dovrebbero essere non distribuite insieme al pom.xml . Questo tipo di informazioni dovrebbe esistere sul server di generazione in the settings.xml.

<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>server001</id> 
     <username>my_login</username> 
     <password>my_password</password> 
     <privateKey>${user.home}/.ssh/id_dsa</privateKey> 
     <passphrase>some_passphrase</passphrase> 
     <filePermissions>664</filePermissions> 
     <directoryPermissions>775</directoryPermissions> 
     <configuration></configuration> 
    </server> 
    </servers> 
    ... 
</settings> 
  • id: Questo è l'ID del server (non di all'utente di effettuare il login come) che corrisponde l'elemento id del repository/specchio che Maven cerca di connettersi.
  • nome utente, la password: Questi elementi appaiono come una coppia che denota la login e password necessarie per l'autenticazione al server .
  • PrivateKey, passphrase: Come i precedenti due elementi, questa coppia specifica un percorso ad una chiave privata (di default è ${user.home}/.ssh/id_dsa) e una passphrase , se necessario Gli elementi passphrase e la password può essere. esternalizzate in futuro, ma per ora deve essere impostata di solo testo nel file settings.xml.
  • filePermissions, directoryPermissions: Quando un file o una directory di repository è creato in fase di distribuzione, queste sono le autorizzazioni da utilizzare. I valori legali di ciascuno sono un numero a tre cifre corrispondente a * nix file autorizzazioni, es. 664, o 775.

Nota: Se si utilizza una chiave privata per login al server, assicurarsi di omette l'elemento <password>. In caso contrario, la chiave verrà ignorata.

crittografia password

Una nuova funzione - password del server e parola chiave di crittografia è stato aggiunto al 2.1.xe 3.0 tronchi. Vedere i dettagli su this page.

Pagare un particolare attenzione alla "nota": Se si utilizza una chiave privata per accedere al server, assicurarsi che si omette l'elemento <password>. Altrimenti, la chiave verrà ignorata. Così la configurazione finale sarà vicino a:

<settings> 
    ... 
    <servers> 
    <server> 
     <id>ssh-repository</id> 
     <username>your username in the remote system</username> 
     <privateKey>/path/to/your/private/key</privateKey> 
     <passphrase>sUp3rStr0ngP4s5wOrD</passphrase><!-- if required --> 
     <configuration> 
     ... 
     </configuration> 
    </server> 
    </servers> 
    ... 
</settings> 
0

So che questo è un vecchio thread, ma sembra che il plugin Wagon sta leggendo settings.xml (ad esempio nome utente), ma non con tutte le impostazioni. Non riuscivo a smettere di chiedere il nome utente/password Kerberos durante scp. (Sembra che a fine 2016 potrebbero esserci state modifiche al plug-in che influiscono su questo.) Basta aggiungere questa risposta nel caso in cui aiuti qualcun altro.

Per me, la soluzione era ancora più semplice: ignorare completamente utilizzando 'settings.xml' e semplicemente specificare 'scpexe' invece di 'scp' per il protocollo (come nella sezione distributionManagement di pom.xml). In questo modo viene utilizzata la configurazione SSH predefinita della macchina (impostazioni unix sotto ~/.ssh).

<plugin> 
    <groupId>org.codehaus.mojo</groupId> 
    <artifactId>wagon-maven-plugin</artifactId> 
    <version>1.0</version> 
    <executions> 
    <execution> 
     <id>upload-to-server</id> 
     <phase>deploy</phase> 
     <goals><goal>upload-single</goal></goals> 
     <configuration> 
     <fromFile>file-to-upload</fromfile> 
     <url>scpexe://[email protected]/dirname-to-copy-to 
     <toFile>file-to-upload</toFile> 
     </configuration> 
    </execution> 
    </executions> 
</plugin> 
Problemi correlati