Как использовать Groovy-maven-plugin с Groovy 3.0.x?
Согласно документации Groovy-maven-plugin можно указать конкретную версию Groovy, которая будет использоваться в сборке maven. Это работает с версиями groovy-all до 2.4.9, но версия 2.5.0 или выше нарушит сборку следующим сообщением, когда я вызываю "mvn validate":
[ОШИБКА] Не удалось выполнить цель org.codehaus.gmaven:groovy-maven-plugin:2.1.1: выполнить (по умолчанию) в проекте groovy3demo: выполнить цель по умолчанию для цели org.codehaus.gmaven:groovy-maven-plugin:2.1.1: выполнить не удалось: плагин org.codehaus.gmaven:groovy-maven-plugin:2.1.1 или одна из его зависимостей не может быть разрешена: не удалось найти артефакт org.codehaus.groovy:groovy-all:jar:3.0.6 в центральный (https://repo.maven.apache.org/maven2) -> [Справка 1]
Причина в том, что здесь в mavencentral репо нет "groovy-all-3.0.6.jar". По-видимому, 'groovy-all-
Итак, мой вопрос: как я могу использовать Groovy 3.x в моей сборке maven?
Спасибо за любую подсказку.
Вот мой pom.xml, и (помимо установки maven) вам не нужно больше, чтобы воспроизвести проблему:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>de.zaphodbeeblebrox</groupId>
<artifactId>groovy3demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>pom</packaging>
<build>
<plugins>
<plugin>
<groupId>org.codehaus.gmaven</groupId>
<artifactId>groovy-maven-plugin</artifactId>
<version>2.1.1</version>
<dependencies>
<dependency>
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy-all</artifactId>
<version>3.0.6</version> <!-- 2.4.9 is the latest successful version -->
</dependency>
</dependencies>
<executions>
<execution>
<phase>validate</phase>
<goals>
<goal>execute</goal>
</goals>
<configuration>
<source>
println '*** Generated Version Numbers and Timestamps ***'
println ' [...]'
</source>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
2 ответа
Из-за изменений, внесенных в groovy v2.5 и описанных в примечаниях к выпуску для Groovy 2.5 и GROOVY-8750, теперь вы должны использовать либо базовый пакет groovy, либо необходимые модули groovy, например:
<plugin>
<groupId>org.codehaus.gmaven</groupId>
<artifactId>groovy-maven-plugin</artifactId>
<version>2.1.1</version>
<dependencies>
<dependency>
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy-xml</artifactId>
<version>3.0.6</version>
</dependency>
</dependencies>
...
</plugin>
Для работы со всеми модулями Groovy вы также можете использовать зависимость Groovy-all.
<plugin>
<groupId>org.codehaus.gmaven</groupId>
<artifactId>groovy-maven-plugin</artifactId>
<version>2.1.1</version>
<dependencies>
<dependency>
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy-all</artifactId>
<version>3.0.7</version>
<type>pom</type>
</dependency>
</dependencies>
</plugin>