As per groovy-maven-plugin documentation it is possible to specify a particular groovy version to be used in a maven build. This succeeds with groovy-all versions up to 2.4.9, but version 2.5.0 or higher will break the build with the followin message, when I call "mvn validate":
[ERROR] Failed to execute goal org.codehaus.gmaven:groovy-maven-plugin:2.1.1:execute (default) on project groovy3demo: Execution default of goal org.codehaus.gmaven:groovy-maven-plugin:2.1.1:execute failed: Plugin org.codehaus.gmaven:groovy-maven-plugin:2.1.1 or one of its dependencies could not be resolved: Could not find artifact org.codehaus.groovy:groovy-all:jar:3.0.6 in central (https://repo.maven.apache.org/maven2) -> [Help 1]
The reason is that there is no 'groovy-all-3.0.6.jar' here in mavencentral repo. Apparently the 'groovy-all-<version>.jar is no longer deployed since version 2.5.0-beta3, only sources and javadoc. Version 2.4.9 seems to be the latest version that succeeds.
So my question is: How can I use groovy 3.x in my maven build?
Thank you for any hint.
Here is my pom.xml and (besides a maven installation) you don't need more than that to reproduce the problem:
<?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>
Due to the changes introduced with groovy v2.5 and described with Release notes for Groovy 2.5 and GROOVY-8750, you should now use either the base groovy package or the wanted groovy modules, like:
<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>