Развертывание сборки на FTP-сервере с помощью Maven 2 - PullRequest
2 голосов
/ 13 октября 2009

У меня есть проект, разделенный на несколько подмодулей (каждый из них 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).

Ответы [ 2 ]

2 голосов
/ 13 октября 2009

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

Для развертывания артефактов с использованием FTP Вы должны сначала указать использование FTP-сервер в Дистрибьюторский элемент управления ваш 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 октября 2009

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

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

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

...