如何使用 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>