如何使用 groovy-maven-plugin 和 groovy 3.0.x?
How to use groovy-maven-plugin with groovy 3.0.x?
根据 groovy-maven-plugin 文档,可以指定要在 Maven 构建中使用的特定 groovy 版本。这在 groovy-all 版本达到 2.4.9 时成功,但是当我调用“mvn validate”时,版本 2.5.0 或更高版本将使用以下消息破坏构建:
[ERROR] 无法执行目标 org.codehaus.gmaven:groovy-maven-plugin:2.1.1: 在项目 groovy3demo 上执行(默认):目标的执行默认值 org.codehaus.gmaven:groovy-maven-plugin:2.1.1:execute failed: Plugin org.codehaus.gmaven:groovy-maven-plugin:2.1.1 或其依赖项之一无法执行已解决:在中央 (https://repo.maven.apache.org/maven2) -> [帮助 1]
中找不到工件 org.codehaus.groovy:groovy-all:jar:3.0.6
原因是没有'groovy-all-3.0.6.jar'here in mavencentral repo。显然,'groovy-all-.jar 自版本 2.5.0-beta3 以来不再部署,只有源代码和 javadoc。 2.4.9版本好像是最新成功的版本。
所以我的问题是:如何在我的 Maven 构建中使用 groovy 3.x?
感谢您的任何提示。
这是我的 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>
由于 groovy v2.5 中引入的更改以及 Release notes for Groovy 2.5 and 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 dependency
<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>
根据 groovy-maven-plugin 文档,可以指定要在 Maven 构建中使用的特定 groovy 版本。这在 groovy-all 版本达到 2.4.9 时成功,但是当我调用“mvn validate”时,版本 2.5.0 或更高版本将使用以下消息破坏构建:
[ERROR] 无法执行目标 org.codehaus.gmaven:groovy-maven-plugin:2.1.1: 在项目 groovy3demo 上执行(默认):目标的执行默认值 org.codehaus.gmaven:groovy-maven-plugin:2.1.1:execute failed: Plugin org.codehaus.gmaven:groovy-maven-plugin:2.1.1 或其依赖项之一无法执行已解决:在中央 (https://repo.maven.apache.org/maven2) -> [帮助 1]
中找不到工件 org.codehaus.groovy:groovy-all:jar:3.0.6原因是没有'groovy-all-3.0.6.jar'here in mavencentral repo。显然,'groovy-all-
所以我的问题是:如何在我的 Maven 构建中使用 groovy 3.x?
感谢您的任何提示。
这是我的 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>
由于 groovy v2.5 中引入的更改以及 Release notes for Groovy 2.5 and 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 dependency
<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>