Есть ли способ заставить maven scp wagon работать последовательно на платформе linux/mac/windows?

Учитывая очень скудную документацию по 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 ответ

Решение

В Maven SSH wagon используется JSch, чистая Java-реализация SSH, которая работает независимо от ОС. (Возможно, это был не тот случай, когда этот вопрос был первоначально опубликован, но сейчас это так.) В документации по плагину развертывания по- прежнему есть руководство под названием " Развертывание артефактов во внешней команде 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>
Другие вопросы по тегам