I'm currently getting the following error when I try to compile my groovy project in Intellij IDEA 15.0.3 on Mac OSX 10.10.5. (This issue is not occurring for the same project on a Windows machine)
Information:Groovyc: java.lang.RuntimeException: Error grabbing Grapes -- [download failed: com.google.code.gson#gson;2.2.4!gson.jar]
The JAR exists in repo.maven.org and in jcenter.bintray.com.
I can download and include it in my project explicitly using compile "com.google.code.gson:gson:2.2.4"
- I still see this compiler issue.
I can't see any reason why the download would fail, I'm using the out-of-the-box ~/.gradle/grapeConfig.xml
.
I've tried deleting my grapes cache directory and re-downloading dependencies - works for all my explicitly defined dependencies.
I'm on a home network - no proxy.
I want to enable advanced logging, so that I can see the exact reason why the Grapes download is failing. I've tried adding the groovy.grape.report.downloads=true
system property to the terminal (and in ~/.bashrc
), but to no avail. I couldn't find any way of setting these properties in the Intellij "Groovy Compiler" settings page. (If I could enable Grapes logging, I'm confident I'd be able to see the root cause)
The Intellij project is setup from gradle cleanIdea idea
. When the project is built from the command line - gradle clean build
(on Mac and Windows), the application compiles with no errors - only problem is in Intellij on a Mac.
This gson.jar
isn't actually referenced in any @Grab
/@Grape
annotations, I haven't checked but I'm guessing it's a transitive dependency.
Any help would be greatly appreciated!
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
Moved grapeConfig.xml to correct directory - ~/.groovy/grapeConfig.xml
Enabled debug logging in Intellij:
... <root> <priority value="DEBUG"/> <appender-ref ref="DIALOG"/> <appender-ref ref="CONSOLE-DEBUG"/> <appender-ref ref="FILE"/> </root> ...
No further details about exception found in ~/Library/Logs/IdeaIC15/idea.log
Added logging flag to /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
No observable change in the logs or console.
-Dgroovy.grape.report.downloads=true
to Intellij Preferences > Compiler > Shared build process VM options:No observable change in the logs or console.
I had the same problem and for me it was the maven cache that was the problem.
I found the solution on this page:
rm -rf ~/.m2/repository ~/.groovy/grapes
I had previously tried removing the ~/.groovy/grapes
cache, but that didn't fix the problem. Removing the ~/.m2/repository
is what actually did it for me.
I got this script working in IntelliJ without problem:
@Grab(group = 'com.google.code.gson', module = 'gson', version = '2.2.4')
import com.google.gson.Gson
println Gson
First thing I did was to write the @Grab declaration... right-click on it, select "Grab artifacts"...
EDIT: Actually, I think put the cursor on @Grab, then pushed Alt+Enter (which is what I usually do to get suggestions from IntelliJ).
IntelliJ failed and told me I need to add Ivy to the classpath... so I opened Project Structure, in Module dependencies added Ivy, tried again... it worked.
Running the script again, it printed the expected message.
Hope that helps somehow...
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With