Развертывание сборки на FTP-сервере с помощью Maven 2

У меня есть проект, разделенный на несколько подмодулей (каждый из них является jarбиблиотекой):

myapp
    myapp-commons
    myapp-client
    myapp-server

Я настроил свой pom.xmlзаказ в 3 для создания сборок ( client.zip, oracle.tar.gzи server.tar.gz), которые , наконец , хранящихся в myapp/targetкаталоге. Я хочу сейчас, чтобы распространить два из них ( oracle.tar.gzи server.tar.gz) на сервер, используя FTP.

Даже если я еще не пробовал, я знаю, что я могу сделать это довольно легко, используя несколько строк Ant внутри моей pom.xml, но мне не очень нравится этот вариант (я решу свою проблему с Ant, только если нет другого решения ). Есть несколько вопросов SO ( здесь или здесь ), которые предлагают решения для этого.

Мой вопрос состоит в том, чтобы узнать, есть ли лучший способ сделать это? Я знаю о плагине Wagon Maven2, но мне не удалось настроить его для развертывания сборок (а не созданного JAR).

13.10.2009 08:09:50
2 ОТВЕТА
РЕШЕНИЕ

Как вы говорите в своем вопросе, подход Ant не идеален, но если вы не найдете альтернативы, этот ответ показывает, как использовать плагин antrun для развертывания с FTP.

Обновление, в зависимости от вашего обновленного вопроса, эта часть менее актуальна, но я оставлю ее, чтобы помочь другим.

Вагон-FTP плагин позволяет подключаться к серверам FTP. Я не пробовал этого, но тогда вы сможете привязать цель deploy-file для плагина deploy-плагина к соответствующему этапу доставки файлов на FTP-сервер (некоторые советы по использованию в этом блоге ).

2
23.05.2017 11:53:28
Извините, я сказал «груз» в своем вопросе, но я имел в виду «фактически универсал»; о)
Romain Linsolas 13.10.2009 12:52:31

Способ развертывания артефактов с использованием FTP описан в разделе Развертывание артефактов с помощью FTP :

Чтобы развернуть артефакты с использованием FTP, вы должны сначала указать использование FTP-сервера в элементе distributionManagement вашей POM, а также указать расширение в вашем элементе сборки, которое будет извлекать артефакты FTP, необходимые для развертывания с помощью FTP:

  ...

  <!-- Enabling the use of FTP -->
  <distributionManagement>
    <repository>
    <id>ftp-repository</id>
    <url>ftp://repository.mycompany.com/repository</url>
    </repository>
  </distributionManagement>

  <build>
    <extensions>
      <extension>
        <groupId>org.apache.maven.wagon</groupId>
         <artifactId>wagon-ftp</artifactId>
         <version>1.0-alpha-6</version>
      </extension>
    </extensions>
  </build>

Ваш settings.xml будет содержать serverэлемент, в котором idэтот элемент соответствует idхранилищу FTP, указанному в POM выше:

<settings>

  ...

  <servers>
    <server>
      <id>ftp-repository</id>
      <username>user</username>
      <password>pass</password>
    </server>

  </servers>

  ...

</settings>

Теперь я понимаю, что вы хотите использовать такие настройки только для подмножества произведенных сборок. Чтобы сделать это, я бы создать специальный модуль для производства сборок , которые будут распределены с помощью FTP и переопределить в distributionManagementэлемент с установкой FTP только в этом модуле.

2
13.10.2009 12:13:38