Nic*_*aly 4 java groovy compiler-errors intellij-idea
当我尝试在Mac OSX 10.10.5上的Intellij IDEA 15.0.3中编译我的groovy项目时,我当前收到以下错误.(Windows机器上的同一项目不会发生此问题)
信息:Groovyc:java.lang.RuntimeException:错误抓取Grapes - [下载失败:com.google.code.gson#gson; 2.2.4!gson.jar]
JAR存在于repo.maven.org和jcenter.bintray.com中.
我可以下载并在我的项目中明确地使用它compile "com.google.code.gson:gson:2.2.4"
- 我仍然看到这个编译器问题.
我看不出下载失败的原因,我正在使用开箱即用的功能~/.gradle/grapeConfig.xml
.
我已经尝试删除我的grape cache目录并重新下载依赖项 - 适用于我所有明确定义的依赖项.
我在家庭网络 - 没有代理.
我想启用高级日志记录,以便我可以看到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
Run Code Online (Sandbox Code Playgroud)
将grapeConfig.xml移动到正确的目录 - ~/.groovy/grapeConfig.xml
在Intellij中启用调试日志记录:
... <root> <priority value ="DEBUG"/> <appender-ref ref ="DIALOG"/> <appender-ref ref ="CONSOLE-DEBUG"/> <appender-ref ref ="FILE"/> </ root> ...
没有关于异常的进一步细节 ~/Library/Logs/IdeaIC15/idea.log
添加了日志标记到 /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
日志或控制台中没有可观察到的更改.
-Dgroovy.grape.report.downloads=true
到Intellij首选项>编译器>共享构建过程VM选项:日志或控制台中没有可观察到的更改.
我有同样的问题,对我来说,maven缓存是问题所在.
我在这个页面上找到了解决方案:
rm -rf ~/.m2/repository ~/.groovy/grapes
Run Code Online (Sandbox Code Playgroud)
我之前尝试删除~/.groovy/grapes
缓存,但这并没有解决问题.删除~/.m2/repository
它实际上是为我做的.
我让这个脚本在 IntelliJ 中正常工作:
@Grab(group = 'com.google.code.gson', module = 'gson', version = '2.2.4')
import com.google.gson.Gson
println Gson
Run Code Online (Sandbox Code Playgroud)
我做的第一件事是编写@Grab 声明...右键单击它,选择“Grab artifacts”...
编辑:实际上,我认为将光标放在 @Grab 上,然后按 Alt+Enter (这是我通常从 IntelliJ 获取建议的做法)。
IntelliJ 失败并告诉我需要将 Ivy 添加到类路径中...所以我打开项目结构,在模块依赖项中添加 Ivy,再次尝试...它起作用了。
再次运行脚本,它打印了预期的消息。
希望能有所帮助......
归档时间: |
|
查看次数: |
2883 次 |
最近记录: |