【问题标题】:Intellij Groovy Compiler throws error Grabbing Grapes (download failed)Intellij Groovy 编译器抛出错误 Grabbing Grapes(下载失败)
【发布时间】:2016-02-12 14:00:25
【问题描述】:

当我尝试在 Mac OSX 10.10.5 上的 Intellij IDEA 15.0.3 中编译我的 groovy 项目时,我目前遇到以下错误。 (Windows 机器上的同一个项目不会出现此问题)

信息:Groovyc: java.lang.RuntimeException: Error grabbing Grapes -- [下载失败: com.google.code.gson#gson;2.2.4!gson.jar]

JAR 存在于repo.maven.orgjcenter.bintray.com 中。

我可以使用compile "com.google.code.gson:gson:2.2.4" 明确下载并将其包含在我的项目中 - 我仍然看到这个编译器问题。

我看不出下载失败的任何原因,我使用的是out-of-the-box ~/.gradle/grapeConfig.xml

我已尝试删除我的葡萄缓存目录并重新下载依赖项 - 适用于我所有明确定义的依赖项。

我在家庭网络上 - 没有代理。

我想enable advanced logging,这样我就可以看到 Grapes 下载失败的确切原因。我尝试将groovy.grape.report.downloads=true 系统属性添加到终端(以及~/.bashrc),但无济于事。我在 Intellij“Groovy 编译器”设置页面中找不到任何设置这些属性的方法。 (如果我可以启用 Grapes 日志记录,我相信我能够找到根本原因)

Intellij 项目是从gradle cleanIdea idea 设置的。从命令行构建项目时 - gradle clean build(在 Mac 和 Windows 上),应用程序编译没有错误 - 唯一的问题是 Mac 上的 Intellij。

这个gson.jar实际上并没有在任何@Grab/@Grape注释中被引用,我没有检查过,但我猜它是一个传递依赖。

任何帮助将不胜感激!

全栈跟踪

Information:Using javac 1.8.0_60 to compile java sources
Information:Groovyc: Groovyc stub generation failed
Information:Groovyc: java.lang.RuntimeException: Error grabbing Grapes -- [download failed: com.google.code.gson#gson;2.2.4!gson.jar]
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:422)
    at org.codehaus.groovy.reflection.CachedConstructor.invoke(CachedConstructor.java:80)
    at org.codehaus.groovy.reflection.CachedConstructor.doConstructorInvoke(CachedConstructor.java:74)
    at org.codehaus.groovy.runtime.callsite.ConstructorSite$ConstructorSiteNoUnwrap.callConstructor(ConstructorSite.java:84)
    at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallConstructor(CallSiteArray.java:60)
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:235)
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:247)
    at groovy.grape.GrapeIvy.getDependencies(GrapeIvy.groovy:421)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:497)
    at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite$PogoCachedMethodSite.invoke(PogoMetaMethodSite.java:169)
    at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite.callCurrent(PogoMetaMethodSite.java:59)
    at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:52)
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:154)
    at groovy.grape.GrapeIvy.resolve(GrapeIvy.groovy:566)
    at groovy.grape.GrapeIvy$resolve$1.callCurrent(Unknown Source)
    at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:52)
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:154)
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:190)
    at groovy.grape.GrapeIvy.resolve(GrapeIvy.groovy:535)
    at groovy.grape.GrapeIvy$resolve$0.callCurrent(Unknown Source)
    at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:52)
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:154)
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:182)
    at groovy.grape.GrapeIvy.grab(GrapeIvy.groovy:257)
    at groovy.grape.Grape.grab(Grape.java:166)
    at groovy.grape.GrabAnnotationTransformation.visit(GrabAnnotationTransformation.java:360)
    at org.codehaus.groovy.transform.ASTTransformationVisitor$3.call(ASTTransformationVisitor.java:321)
    at org.codehaus.groovy.control.CompilationUnit.applyToSourceUnits(CompilationUnit.java:931)
    at org.codehaus.groovy.control.CompilationUnit.doPhaseOperation(CompilationUnit.java:593)
    at org.codehaus.groovy.control.CompilationUnit.processPhaseOperations(CompilationUnit.java:569)
    at org.codehaus.groovy.control.CompilationUnit.compile(CompilationUnit.java:546)
    at org.jetbrains.groovy.compiler.rt.GroovyCompilerWrapper.compile(GroovyCompilerWrapper.java:62)
    at org.jetbrains.groovy.compiler.rt.DependentGroovycRunner.runGroovyc(DependentGroovycRunner.java:115)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:497)
    at org.jetbrains.groovy.compiler.rt.GroovycRunner.intMain2(GroovycRunner.java:134)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:497)
    at org.jetbrains.jps.incremental.groovy.InProcessGroovyc.runGroovycInThisProcess(InProcessGroovyc.java:156)
    at org.jetbrains.jps.incremental.groovy.InProcessGroovyc.access$000(InProcessGroovyc.java:51)
    at org.jetbrains.jps.incremental.groovy.InProcessGroovyc$1.call(InProcessGroovyc.java:85)
    at org.jetbrains.jps.incremental.groovy.InProcessGroovyc$1.call(InProcessGroovyc.java:82)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)
Information:java: Errors occurred while compiling module 'server'
Information:12/02/2016 6:45 PM - Compilation completed with 3 errors and 0 warnings in 9s 266ms
/<myproject>/WebConfigurer.java
Error:(10, 37) java: cannot find symbol
  symbol:   class HtmlHttpMessageConverter
  location: package mypackage.mediaType
Error:(113, 16) java: cannot find symbol
  symbol:   class HtmlHttpMessageConverter
  location: class mypackage.WebConfigurer
/<myproject>/SirenConverters.java
Error:(14, 38) java: package mypackage.controller does not exist

相关(?)

Groovy - Grab - download failed

14/02/16 更新 - 仍然没有运气

  1. 将grapeConfig.xml 移至正确的目录-~/.groovy/grapeConfig.xml

  2. 在 Intellij 中启用调试日志记录:

    ... ...

~/Library/Logs/IdeaIC15/idea.log 中找不到有关异常的更多详细信息

  1. /Applications/IntelliJ\ IDEA\ 15\ CE.app/Contents/bin/idea.vmoptions添加了日志标志

    -Dgroovy.grape.report.downloads=true -Xms128m -Xmx750m -XX:MaxPermSize=350m -XX:ReservedCodeCacheSize=240m -XX:+UseCompressedOops

日志或控制台中没有可观察到的变化。

  1. 在 Intellij Preferences > Compiler > Shared build process VM 选项中添加了 -Dgroovy.grape.report.downloads=true

日志或控制台中没有可观察到的变化。

【问题讨论】:

标签: java intellij-idea groovy compiler-errors


【解决方案1】:

我遇到了同样的问题,对我来说,问题在于 maven 缓存。

我找到了解决方案on this page

rm -rf ~/.m2/repository ~/.groovy/grapes

我之前曾尝试删除 ~/.groovy/grapes 缓存,但这并没有解决问题。删除~/.m2/repository 对我来说实际上是这样做的。

【讨论】:

    【解决方案2】:

    我让这个脚本在 IntelliJ 中运行没有问题:

    @Grab(group = 'com.google.code.gson', module = 'gson', version = '2.2.4')
    import com.google.gson.Gson
    
    println Gson
    

    我做的第一件事是编写@Grab 声明...右键单击它,选择“Grab artifacts”...

    编辑:实际上,我认为将光标放在@Grab 上,然后按 Alt+Enter(这是我通常用来从 IntelliJ 获得建议的操作)。

    IntelliJ 失败并告诉我需要将 Ivy 添加到类路径中...所以我打开了项目结构,在模块依赖项中添加了 Ivy,再次尝试...它成功了。

    再次运行脚本,它打印了预期的消息。

    希望能有所帮助...

    【讨论】:

    • 不幸的是,不幸的是,仍然收到以下消息。不过建议很好。 0 Grape dependency jars added @Grab(group = 'com.google.code.gson', module = 'gson', version = '2.2.4'): 0 jars Error grabbing Grapes -- [download failed: com.google.code.gson#gson;2.2.4!gson.jar]
    • 好吧,鉴于您和我的环境之间唯一可能的区别是 Ivy 配置,我建议您尝试彻底清理“.groovy/grapes”目录并删除 ivy 配置文件。它没有理由不适合你。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多