Есть ли способ заставить 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>