OSGi: как использовать PuTTY scp с maven-bundle-plugin

Я хочу развернуть свой пакет OSGi, скомпилированный maven, в мой удаленный репозиторий OSGi. Я на Windows 7 и использую плагин maven-bundle-plug (2.3.7) от eclipse. Репозиторий находится на Linux и доступен через ssh.

Я настроил в settings.xml использование plink и pscp (инструменты Putty) для работы с ssh. В <distributionManagement> я установил URL репозитория, который начинается с scpexe://

Цель maven-deploy работает нормально и загружает файлы jar и metadata.xml в репозиторий.

Теперь я также хочу, чтобы метаданные OBR были созданы и загружены. Таким образом, я добавляю в конфигурацию плагина maven-bundle-plugin <remoteOBR>my-repository</remoteOBR> (который является тем же идентификатором, что и репозиторий в <distributionManagement>.

При выполнении развертывания (после успешного завершения этапа развертывания maven) я получаю сообщение об ошибке.

[ОШИБКА] Не удалось выполнить цель org.apache.felix:maven-bundle-plugin:2.3.7:deploy (развертывание по умолчанию) в загрузчике проекта: ошибка переноса: код выхода: 1 — «scp» не распознан как внутренний или внешней командой, исполняемой программой или пакетным файлом.
-> [Справка 1]

Это означает, что плагин maven-bundle-plugin использует не команду pscp, как указано в settings.xml, а скорее «scp», который недоступен по пути.

Как настроить плагин maven-bundle-plugin для загрузки данных OBR с помощью pscp PuTTY?


person Philipp    schedule 21.01.2014    source источник


Ответы (1)


В конце концов я нашел рабочее решение:

  1. не используйте внешний инструмент ssh (PuTTY), а только внутреннюю реализацию ssh/scp maven
  2. таким образом, используйте wagon-ssh (не wagon-ssh-external)
  3. добавить имя пользователя, местоположение закрытого ключа и фразу-пароль в settings.xml (к сожалению, нельзя использовать конкурс, но я должен жестко закодировать мою фразу-пароль в settings.xml (beuh))

Так выглядит POM (обратите внимание, для URL-адреса используется протокол scp://)

<project>
...
  <distributionManagement>
    <repository>
      <id>my-repository</id>
      <url>scp://repo.myserver.com/path/to/repo/</url>
    </repository>
  </distributionManagement>
...
  <build>
    <plugins>
        <plugin>
            <groupId>org.apache.felix</groupId>
            <artifactId>maven-bundle-plugin</artifactId>
            <version>2.3.7</version>
            <extensions>true</extensions>
            <configuration>
                ...
                <remoteOBR>my-repository</remoteOBR>
            </configuration>
        </plugin>
    </plugins>
    <extensions>
          <extension>
            <groupId>org.apache.maven.wagon</groupId>
             <artifactId>wagon-ssh</artifactId>
             <version>2.5</version>
          </extension>
    </extensions>
  </build>
...

И settings.xml (который находится в C:\Users\myUsernameOnWindows\.m2\)

<settings>
  <servers>
    <server>
      <id>my-repository</id>
      <username>myUsernameOnRepo</username>
      <privateKey>C:/path/to/private/key/id_rsa</privateKey>
      <passphrase>myPrivateKeyPassphrase</passphrase>
    </server>
  </servers>
</settings>
person Philipp    schedule 22.01.2014