63 votes

Maven copie un fichier local vers un serveur distant en utilisant SSH

Maven peut-il copier un fichier local sur un serveur distant en utilisant SSH ?

Je veux spécifier l'emplacement dans le fichier de configuration maven et copier ce fichier (ou ces fichiers) sur le serveur chaque fois que la phase de déploiement est exécutée.

5voto

SebastianH Points 1068

Bien que cette question ne soit pas vraiment nouvelle, je me suis retrouvé aujourd'hui dans une situation similaire. Mon objectif est de télécharger des fichiers et d'exécuter des commandes sur un serveur distant auquel je dois accéder par tunnel (via un autre serveur). J'ai réussi à forger une solution pour cela avec ant (qui peut à nouveau être déclenché à partir de maven comme mentionné ici).

Fourmis sshsession ne crée qu'un tunnel que vous pouvez utiliser pour les tâches qui s'y trouvent. Les tâches qu'il contient ne sont pas automatiquement exécutées sur le serveur distant, mais vous pouvez utiliser la fonction d'exécution des tâches. sshexec en collaboration avec le tunnel pour y parvenir. De même, le scp La tâche peut maintenant être téléchargée à travers le tunnel vers le serveur distant. Voici un exemple :

<sshsession host="${jumphost}" port="22" username="${user}" password="${password}" trust="true">
    <localtunnel lport="${localTunnelPort}" rhost="${targethost}" rport="22"/>
    <sequential>
        <!-- run a command on the remote server (here mkdir) -->
        <sshexec host="localhost" port="${localTunnelPort}" username="${user.param}" password="${password.param}" command="mkdir ${home}/foobar" trust="true" />
        <!-- upload a file to the remote server -->
        <scp port="${localTunnelPort}" file="test_file.txt" todir="${user.param}:${password.param}@localhost:${home}/foobar/" trust="true" />
    </sequential>
</sshsession>

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X