【问题标题】:Groovy @Grab NoClassDefFoundError: org/apache/ivy/plugins/resolver/DependencyResolverGroovy @Grab NoClassDefFoundError: org/apache/ivy/plugins/resolver/DependencyResolver
【发布时间】:2021-07-06 21:31:56
【问题描述】:

第一次使用@grab(groovy 新手)

我知道这是为了“开箱即用”。

但是,当我将其添加到我的班级时:

@Grab(group='commons-lang', module='commons-lang', version='2.4')

我收到以下编译错误:

Caused by: java.lang.NoClassDefFoundError: org/apache/ivy/plugins/resolver/DependencyResolver

Groovy 版本是Groovy Version: 3.0.4 JVM: 11.0.1 Vendor: Oracle Corporation OS: Mac OS X

【问题讨论】:

  • 如何开始 groovy?
  • 通过 intellij 单元测试。但是通过gradle编译也会抛出编译错误,也指DepenencyResolveer
  • 那么你缺少对 ivy-2.4.0.jar 的依赖
  • 你可以设置对groovy-all的依赖。它包括所有其他库
  • 解决了!奇怪的是我曾尝试将 ivy 作为 buildSrc 和常规依赖项放在 build.gradle 中

标签: groovy


【解决方案1】:

您缺少依赖项或库ivy-2.4.0.jar

这个库是groovy-all 工件的一部分。检查groovy-all.pom 以查看所有常规依赖项/功能

所以,你可以在你的项目中设置对groovy-all工件的依赖

如果您不想将所有 groovy 功能​​都包含到您的项目中,也可以使用单独的 ivy-2.4.0.jar 工件

【讨论】:

    【解决方案2】:

    尝试将此添加到gradle.build

    configurations {
      ivy
    }
    
    dependencies {
      ivy "org.apache.ivy:ivy:2.4.0"
     ...
    }
    
    tasks.withType(GroovyCompile) {
      groovyClasspath += configurations.ivy
    }
    
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-11-07
      • 1970-01-01
      • 1970-01-01
      • 2015-11-23
      • 2016-12-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多