2010-04-28 12 views

Respuesta

14

Usted debe ser capaz de especificar la ruta de acceso a la clave privada en el elemento server en su settings.xml:

Los repositorios de descarga y implementación están definidos por repositories y distributionManagement elementos de POM. Sin embargo, ciertas configuraciones , como el nombre de usuario y la contraseña, no deben distribuirse junto con pom.xml . Este tipo de información debería existir en el servidor de compilación en 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> 
  • Identificación: Este es el ID del servidor (no de usuario para iniciar la sesión como) que coincide con el elemento de identificación de la repositorio/espejo que Maven intenta conectarse.
  • nombre de usuario, contraseña: Estos elementos aparecen como un par que indica el nombre de usuario y contraseña requerido para autenticar a este servidor .
  • PrivateKey, frase de contraseña: Al igual que los dos elementos anteriores, este par especifica una ruta a una clave privada (por defecto es ${user.home}/.ssh/id_dsa) y una frase de contraseña , si es necesario Los elementos frase de acceso y contraseña puede ser. exteriorizan en el futuro, pero por ahora deben definirse como texto sin formato en el archivo settings.xml.
  • filePermissions, directoryPermissions: cuando se crea un archivo o directorio de repositorio en el despliegue, estos son los permisos que se usarán. Los valores legales de cada uno son un número de tres dígitos correspondiente a los permisos * nix permisos, es decir. 664 o 775.

Nota: Si utiliza una clave privada para de inicio de sesión en el servidor, asegúrese de que omite el elemento <password>. De lo contrario, la clave se ignorará.

contraseña de cifrado

Una nueva característica - contraseña del servidor y frase de cifrado se ha añadido a 2.1.xy 3.0 troncos. Ver detalles en this page.

prestará especial atención a la "nota": Si utiliza una clave privada para iniciar sesión en el servidor, asegúrese de que se omite el elemento <password>. De lo contrario, la clave será ignorada. Así que la configuración final estará cerca de:

<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

Sé que esto es un hilo viejo, pero parece que el plugin carro está leyendo settings.xml (por ejemplo, nombre de usuario), pero no el uso de todos los ajustes. No pude conseguir que dejara de solicitar el nombre de usuario/contraseña de Kerberos durante scp. (Parece que hubo cambios en el complemento a finales de 2016 que afectan esto.) Simplemente agregue esta respuesta en caso de que ayude a otra persona.

Para mí, la solución era aún más simple: omita por completo 'settings.xml' y simplemente especifique 'scpexe' en lugar de 'scp' para el protocolo (como en la sección de distribución de distribución de pom.xml). A continuación, utiliza la configuración SSH predeterminada de su máquina (configuración de Unix en ~/.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> 
Cuestiones relacionadas