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.