Есть ли способ заставить maven scp wagon работать на платформе linux / mac / windows? - PullRequest
8 голосов
/ 28 апреля 2011

Учитывая очень скудную документацию по scp / ssh и maven, я пробовал разные подходы, в основном разделяясь на две основные категории: использование scpexe wagon и scp wagon. Обычно они оба работают без проблем на Linux и Mac, но в Windows я так и не нашел способ заставить его работать на всех машинах.

Подход

scpexe (после установки полной замазки и добавления к пути) - конфигурация settings.xml:

<server>
    <id>internal</id>
    <username>******</username>
    <password>*******</password>
    <configuration>
        <sshExecutable>plink</sshExecutable>
        <scpExecutable>pscp</scpExecutable>
    </configuration>
</server>

Подход scp - settings.xml:

 <server>
      <id>internal</id>
      <username>*********</username>
      <password>*********</password>
      <configuration>
           <StrictHostKeyChecking>ask</StrictHostKeyChecking>
      </configuration>
 </server>

Я также попытался установить для StrictHostKeyChecking значение «Нет», но, за исключением угроз безопасности, не работал на конкретной машине.

Кто-нибудь нашел способ последовательно использовать внутренний репозиторий ssh ​​на всех машинах?

1 Ответ

10 голосов
/ 18 января 2013

В Maven SSH wagon используется JSch, чистая Java-реализация SSH, которая работает независимо от ОС. (Возможно, это был не тот случай, когда этот вопрос был первоначально опубликован, но сейчас это так.) Документация Deploy Plugin все еще содержит руководство под названием Развертывание артефактов во внешней команде SSH, но этот подход больше не нужен.

Вот пример конфигурации, которую я успешно использовал для развертывания по SCP в Linux-системе из системы Windows 7 с 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>
...