Перейти к основному содержимому

Запустите задачу Ant с помощью Maven

· 3 мин. чтения

1. Введение

Maven и Ant — хорошо известные инструменты автоматизации сборки для Java. Хотя большую часть времени мы будем использовать только один из них, бывают случаи, когда использование двух вместе имеет смысл.

Обычный вариант использования — работа над устаревшим проектом, в котором используется Ant, и мы хотим постепенно вводить Maven , сохраняя при этом некоторые существующие задачи Ant.

В этом руководстве мы расскажем, как это сделать с помощью плагина Maven AntRun.

2. Плагин Maven AntRun

Плагин Maven AntRun позволяет нам запускать задачи Ant в Maven.

2.1. Добавление плагина

Чтобы использовать этот плагин, нам нужно добавить его в плагины сборки нашего проекта Maven:

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.8</version>
<executions>
...
</executions>
</plugin>

Последнюю версию плагина можно найти на Maven Central (хотя она давно не обновлялась).

2.2. Выполнение плагинов

Как и в случае с любым другим плагином Maven, чтобы использовать плагин AntRun, нам нужно определить выполнение.

В приведенном ниже примере мы определяем одно выполнение, привязанное к фазе пакета Maven , которое заархивирует окончательный файл JAR из целевого каталога проекта:

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-ant-run-plugin</artifactId>
<version>1.8</version>
<executions>
<execution>
<id>zip-artifacts</id>
<phase>package</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<target>
<zip destfile="${project.basedir}/package.zip"
basedir="${project.build.directory}"
includes="*.jar" />
</target>
</configuration>
</execution>
</executions>
</plugin>

Для запуска плагина запускаем команду:

mvn package

Поскольку мы объявили, что наш плагин будет работать на этапе пакета Maven, выполнение цели пакета Maven приведет к выполнению нашей конфигурации плагина, указанной выше.

3. Пример использования файла build.xml

Помимо возможности определять цели Ant в конфигурации подключаемого модуля, мы также можем использовать существующий файл Ant build.xml .

3.1. build.xml

Ниже приведен пример файла Ant build.xml проекта с целью, определенной для загрузки zip-файлов из базового каталога проекта на FTP-сервер:

<project name="MyProject" default="dist" basedir=".">
<description>Project Description</description>

...

<target name="ftpArtifact">
<ftp
server="${ftp.host}"
userid="${ftp.user}"
password="${ftp.password}">
<fileset dir="${project.basedir}>
<include name="**/*.zip" />
</fileset>
</ftp>
</target>
</project>

3.2. Конфигурация плагина

Чтобы использовать приведенный выше файл build.xml , мы определяем выполнение в объявлении нашего плагина:

<execution>
<id>deploy-artifact</id>
<phase>install</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<target>
<ant antfile="${basedir}/build.xml">
<target name="ftpArtifact"/>
</ant>
</target>
</configuration>
</execution>

Поскольку задача ftp не включена в ant.jar , нам нужно добавить необязательные зависимости Ant в конфигурацию нашего плагина:

<plugin>
<executions>
...
</executions>
<dependencies>
<dependency>
<groupId>commons-net</groupId>
<artifactId>commons-net</artifactId>
<version>1.4.1</version>
</dependency>
<dependency>
<groupId>org.apache.ant</groupId>
<artifactId>ant-commons-net</artifactId>
<version>1.8.1</version>
</dependency>
</dependencies>
</plugin>

Для запуска плагина запускаем команду:

mvn install

4. Вывод

В этой короткой статье мы обсудили выполнение задач Ant с помощью подключаемого модуля Maven AntRun . Несмотря на то, что это очень простой плагин, преследующий только одну цель, этот плагин может оказаться эффективным в проектах и командах, которые предпочитают использовать Ant для конкретных инструкций по сборке.

И, если вы хотите узнать больше об Ant и Maven, вы можете прочитать нашу статью , сравнив эти два — вместе с Gradle.