2010-04-28 7 views

Antwort

14

Sie sollten den Pfad zum privaten Schlüssel im server Elemente in Ihrer settings.xml angeben können:

Die Repositories zum Download und Einsatz sind durch die repositories und distributionManagement Elemente von der POM definiert. Bestimmte Einstellungen wie Benutzername und Kennwort sollten jedoch nicht zusammen mit der pom.xml verteilt werden. Diese Art von Information sollte auf dem Build-Server in der settings.xml vorhanden sein.

<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: Dies ist die ID des Server (nicht des Benutzers als einzuloggen) , die das ID-Element des repository/Spiegel übereinstimmt, die Maven versucht Verbindung zu.
  • Benutzername, Passwort: Diese Elemente erscheinen als ein Paar das Login und Passwort angibt zu diesen Server authentifizieren zu müssen.
  • privateKey, Passwort: Wie in den vorherigen zwei Elementen, gibt dieses Paar einen Pfad zu einem privaten Schlüssel (Standard ist ${user.home}/.ssh/id_dsa) und ein Passwort ein, falls erforderlich Die Passwort und Passwort-Elemente können sein. externalisiert in der Zukunft, sondern für jetzt müssen sie Klartext in der settings.xml eingestellt werden.
  • Dateiberechtigungen, directoryPermissions: Wenn für die Bereitstellung eine Repository-Datei oder ein Verzeichnis erstellt wird, sind dies die zu verwendenden Berechtigungen. Die rechtlichen Werte von jedem ist eine dreistellige Nummer entsprechend * nix Datei Berechtigungen, dh. 664 oder 775.

Hinweis: Wenn Sie einen privaten Schlüssel zu Login auf dem Server verwenden, stellen Sie sicher, dass Sie auslassen das <password> Element. Andernfalls wird der Schlüssel ignoriert.

Passwort-Verschlüsselung

Ein neues Feature - Server Passwort und Passwort-Verschlüsselung wurde hinzugefügt, um 2.1.x und 3.0 Stämme. Siehe Details auf this page.

Zahlen eine besondere Aufmerksamkeit auf den „Hinweis“: Wenn Sie einen privaten Schlüssel verwenden, um in den Server einzuloggen, stellen Sie sicher, dass Sie das <password> Element weglassen. Andernfalls wird der Schlüssel ignoriert. So wird die endgültige Konfiguration der Nähe:

<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

Ich weiß, das ein alter Thread, aber es sieht aus wie die Wagon-Plugin settings.xml liest (zum Beispiel Benutzername), aber nicht alle Einstellungen verwenden. Ich konnte es nicht erreichen, während der scp nach Kerberos Benutzername/Passwort zu fragen. (Sieht so aus, als hätte es Ende 2016 Änderungen am Plugin gegeben, die dies beeinflussen.) Diese Antwort nur hinzufügen, falls sie jemand anderem hilft.

Für mich war die Lösung noch einfacher: Überspringen Sie einfach 'settings.xml' und geben Sie einfach 'scpexe' anstelle von 'scp' für das Protokoll an (wie im Abschnitt distributionManagement von pom.xml). Dies verwendet dann die Standard-SSH-Konfiguration Ihres Computers (Unix-Einstellungen unter ~/.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>