3

根据groovy-maven-plugin文档,可以指定要在 maven 构建中使用的特定 groovy 版本。这在最高 2.4.9 的groovy-all版本中成功,但是当我调用“mvn validate”时,2.5.0 或更高版本将使用以下消息破坏构建:

[错误] 无法执行目标 org.codehaus.gmaven:groovy-maven-plugin:2.1.1:execute (default) on project 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 repo中没有“groovy-all-3.0.6.jar” 。显然 'groovy-all-<version>.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>
4

2 回答 2

3

由于 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>
于 2020-11-16T16:27:03.280 回答
1

要使用所有 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>
于 2021-04-26T14:01:22.037 回答