STS中Grails的classpath容器 [英] classpath container for Grails in STS
问题描述
我在Grails依赖关系中遇到STS问题。有一个条目,指向错误的目录。由于错误,内部STS构建失败:
I have a problem with STS on Grails Dependencies. There is one entry, which is pointing to wrong directory. Internal STS build fails due to an error:
Problems occurred when invoking code from plug-in: "org.eclipse.core.resources".
java.lang.NullPointerException
at org.codehaus.jdt.groovy.internal.compiler.ast.JDTClassNodeBuilder.toRawType(JDTClassNodeBuilder.java:116)
at org.codehaus.jdt.groovy.internal.compiler.ast.JDTClassNodeBuilder.configureParameterizedType(JDTClassNodeBuilder.java:290)
at org.codehaus.jdt.groovy.internal.compiler.ast.JDTClassNodeBuilder.configureType(JDTClassNodeBuilder.java:56)
at org.codehaus.jdt.groovy.internal.compiler.ast.JDTClassNodeBuilder.build(JDTClassNodeBuilder.java:46)
at org.codehaus.jdt.groovy.internal.compiler.ast.JDTClassNode.makeClassNode(JDTClassNode.java:399)
at org.codehaus.jdt.groovy.internal.compiler.ast.JDTClassNode.makeParameter(JDTClassNode.java:379)
at org.codehaus.jdt.groovy.internal.compiler.ast.JDTClassNode.makeParameters(JDTClassNode.java:366)
at org.codehaus.jdt.groovy.internal.compiler.ast.JDTClassNode.methodBindingToMethodNode(JDTClassNode.java:339)
at org.codehaus.jdt.groovy.internal.compiler.ast.JDTClassNode.initializeMembers(JDTClassNode.java:256)
at org.codehaus.jdt.groovy.internal.compiler.ast.JDTClassNode.initialize(JDTClassNode.java:227)
at org.codehaus.jdt.groovy.internal.compiler.ast.JDTClassNode.lazyClassInit(JDTClassNode.java:158)
at org.codehaus.groovy.ast.ClassNode.getUnresolvedSuperClass(ClassNode.java:1087)
at org.codehaus.groovy.ast.ClassNode.getUnresolvedSuperClass(ClassNode.java:1079)
at org.codehaus.groovy.ast.ClassNode.getSuperClass(ClassNode.java:1073)
at org.codehaus.groovy.ast.ClassNode.isDerivedFrom(ClassNode.java:1013)
at org.codehaus.groovy.classgen.ClassCompletionVerifier.visitCatchStatement(ClassCompletionVerifier.java:448)
at org.codehaus.groovy.ast.stmt.CatchStatement.visit(CatchStatement.java:41)
at org.codehaus.groovy.ast.CodeVisitorSupport.visitTryCatchFinally(CodeVisitorSupport.java:84)
at org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitTryCatchFinally(ClassCodeVisitorSupport.java:244)
at org.codehaus.groovy.ast.stmt.TryCatchStatement.visit(TryCatchStatement.java:42)
at org.codehaus.groovy.ast.CodeVisitorSupport.visitBlockStatement(CodeVisitorSupport.java:35)
at org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitBlockStatement(ClassCodeVisitorSupport.java:179)
at org.codehaus.groovy.ast.stmt.BlockStatement.visit(BlockStatement.java:69)
at org.codehaus.groovy.ast.CodeVisitorSupport.visitIfElse(CodeVisitorSupport.java:56)
at org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitIfElse(ClassCodeVisitorSupport.java:219)
at org.codehaus.groovy.ast.stmt.IfStatement.visit(IfStatement.java:41)
at org.codehaus.groovy.ast.CodeVisitorSupport.visitBlockStatement(CodeVisitorSupport.java:35)
at org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitBlockStatement(ClassCodeVisitorSupport.java:179)
at org.codehaus.groovy.ast.stmt.BlockStatement.visit(BlockStatement.java:69)
at org.codehaus.groovy.ast.CodeVisitorSupport.visitClosureExpression(CodeVisitorSupport.java:174)
at org.codehaus.groovy.ast.expr.ClosureExpression.visit(ClosureExpression.java:45)
at org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitProperty(ClassCodeVisitorSupport.java:142)
at org.codehaus.groovy.classgen.ClassCompletionVerifier.visitProperty(ClassCompletionVerifier.java:349)
at org.codehaus.groovy.ast.ClassNode.visitContents(ClassNode.java:1160)
at org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitClass(ClassCodeVisitorSupport.java:51)
at org.codehaus.groovy.classgen.ClassCompletionVerifier.visitClass(ClassCompletionVerifier.java:74)
at org.codehaus.groovy.control.CompilationUnit$6.call(CompilationUnit.java:838)
at org.codehaus.groovy.control.CompilationUnit.applyToPrimaryClassNodes(CompilationUnit.java:1152)
at org.codehaus.groovy.control.CompilationUnit.doPhaseOperation(CompilationUnit.java:588)
at org.codehaus.groovy.control.CompilationUnit.processPhaseOperations(CompilationUnit.java:566)
at org.codehaus.groovy.control.CompilationUnit.compile(CompilationUnit.java:543)
at org.codehaus.jdt.groovy.internal.compiler.ast.GroovyCompilationUnitDeclaration.processToPhase(GroovyCompilationUnitDeclaration.java:171)
at org.codehaus.jdt.groovy.internal.compiler.ast.GroovyCompilationUnitDeclaration.generateCode(GroovyCompilationUnitDeclaration.java:1555)
at org.eclipse.jdt.internal.compiler.Compiler.process(Compiler.java:838)
at org.eclipse.jdt.internal.compiler.ProcessTaskManager.run(ProcessTaskManager.java:137)
at java.lang.Thread.run(Unknown Source)
Grails命令运行应用程序工作正常。
Grails command run-app works fine.
我通过不必要的链接插件类到
C:\Documents and Settings\<myUserName>\.grails\1.3.7\projects\<ProjectName>\plugin-classes
现在我正在寻找一个删除此条目的方法,但在Project-> Build Path-> Configure Build Path - > Libraries 删除按钮被禁用。
And now I'm looking for a method to remove this entry, but under Project->Build Path-> Configure Build Path -> Libraries the remove button is disabled.
如果我查看里面的.classpath文件,我看到以下条目:
If I look inside .classpath file I see following entry:
<classpathentry kind="con" path="org.grails.ide.eclipse.core.CLASSPATH_CONTAINER"/>
Google关于CLASSPATH_CONTAINER未成功。
conf 目录(diff with subversion)中的文件没有变化
Google about CLASSPATH_CONTAINER was unsuccessful. There is no changes in the files inside conf directory (diff with subversion)
我已经尝试了: / p>
I've already tried to do:
- 删除.ivy2文件夹
- 删除.grails文件夹
- grails clean
- Grails->刷新依赖关系
- 项目 - >清洁
- 删除项目并导入从SVN的最后一个版本
- 删除工作区并创建新的一个
- 1..7
- delete .ivy2 folder
- delete .grails folder
- grails clean
- Grails-> refresh dependencies
- Project -> clean
- Delete Project and import the last version from SVN
- Delete Workspace and create fresh one
- any combination of 1..7
请帮助!
推荐答案
以下步骤解决了我的问题:
Following steps have solved my problem:
- 删除.grails文件夹
- 删除.ivy2文件夹
- 删除工作区
- 重新安装eclipse(这是缺少的一步)
- 列表项目
- 将项目导入新的工作区
- 确保此项目没有升级grails和groovy编译器版本。
- delete .grails folder
- delete .ivy2 folder
- delete workspace
- reinstall eclipse (that was the missing step)
- List item
- import the project into new workspace
- make sure that grails and groovy compiler versions are not upgraded for this project.
我不知道可以拒绝哪一步。
Ralf,感谢您的建议。
I'm not sure which step can be obmitted. Ralf, thanks for suggestion.
这篇关于STS中Grails的classpath容器的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!