C'è un modo di avere Maven SCP lavoro carro in modo coerente su piattaforma Linux / Mac / windows?
Domanda
Data la scarsissima documentazione su SCP / SSH e Maven ho provato diversi approcci, in fondo che rientrano in due categorie principali: utilizzando carro scpexe e SCP carro. Di solito entrambi lavorano senza problemi sia su Linux e Mac, ma sulle finestre non ho mai trovato un modo per farlo funzionare su tutte le macchine.
approccio scpexe (dopo l'installazione completa stucco e aggiungendo al percorso) - Configurazione settings.xml:
<server>
<id>internal</id>
<username>******</username>
<password>*******</password>
<configuration>
<sshExecutable>plink</sshExecutable>
<scpExecutable>pscp</scpExecutable>
</configuration>
</server>
approccio SCP - settings.xml:
<server>
<id>internal</id>
<username>*********</username>
<password>*********</password>
<configuration>
<StrictHostKeyChecking>ask</StrictHostKeyChecking>
</configuration>
</server>
Ho anche cercato di mettere StrictHostKeyChecking a "no", ma, rischi per la sicurezza a parte, non ha funzionato su una particolare macchina.
Qualcuno ha trovato un modo per utilizzare un repository ssh interna costantemente su tutte le macchine?
Soluzione
Il Maven SSH carro utilizza JSch, il puro-Java implementazione di SSH, che funziona indipendentemente dal sistema operativo. (Forse questo non era il caso in cui tale domanda è stata originariamente pubblicato, ma è vero oggi.) Il documentazione Deploy plugin ha ancora una guida intitolata distribuzione di manufatti in un comando SSH esterna , ma questo approccio non è più necessario.
Ecco un esempio di configurazione che ho usato con successo da distribuire nel corso SCP per una macchina Linux da un sistema Windows 7 con Maven 3.0.4.
pom.xml
:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>hello</groupId>
<artifactId>hello</artifactId>
<packaging>jar</packaging>
<version>1.0-SNAPSHOT</version>
<name>Hello</name>
<build>
<extensions>
<extension>
<groupId>org.apache.maven.wagon</groupId>
<artifactId>wagon-ssh</artifactId>
<version>2.3</version>
</extension>
</extensions>
</build>
<distributionManagement>
<repository>
<id>my-ssh-repo</id>
<url>scp://my.server.url/path/to/ssh-repo</url>
</repository>
</distributionManagement>
</project>
settings.xml
:
<settings>
<servers>
<server>
<id>my-ssh-repo</id>
<username>myUser</username>
<password>myPass</password>
</server>
</servers>
</settings>