【问题标题】:Adding spock to eclipse without maven: General error during semantic analysis在没有maven的情况下将spock添加到eclipse:语义分析期间的一般错误
【发布时间】:2018-01-12 00:55:39
【问题描述】:

我正在尝试使用 Spock 进行我的第一个测试自动化。 我不想使用 Maven。 我正在使用 eclipse java EE 氧气 4.7。 我创建了一个 groovy 项目。 我在构建路径配置中添加了 Spock jar 作为外部库。 Spock 是 Spock-core-1.1-groovy-2.4。 我也以同样的方式添加了 geb jar。 但是,我从自动构建中收到了这个奇怪的错误,我不明白,我正在寻求帮助。到目前为止,我还没有发现任何有用的东西。

语义分析期间的一般错误:Transform org.spockframework.compiler.SpockTransform@xxxx cannot be run org.codehaus.groovy.GroovyException: 转换 org.spockframework.compiler.SpockTransform@xxxx 不能在 org.codehaus.groovy.transform.ASTTransformationVisitor$3.call(ASTTransformationVisitor.java:416) 在 org.codehaus.groovy.control.CompilationUnit.applyToSourceUnits(CompilationUnit.java:972) 在 org.codehaus.groovy.control.CompilationUnit.doPhaseOperation(CompilationUnit.java:633) 在 org.codehaus.groovy.control.CompilationUnit.processPhaseOperations(CompilationUnit.java:609) 在 org.codehaus.groovy.control.CompilationUnit.compile(CompilationUnit.java:586) 在 org.codehaus.jdt.groovy.internal.compiler.ast.GroovyCompilationUnitDeclaration.processToPhase(GroovyCompilationUnitDeclaration.java:217) 在 org.codehaus.jdt.groovy.internal.compiler.ast.GroovyCompilationUnitDeclaration.resolve(GroovyCompilationUnitDeclaration.java:613) 在 org.eclipse.jdt.internal.compiler.Compiler.process(Compiler.java:879) 在 org.eclipse.jdt.internal.compiler.ProcessTaskManager.run(ProcessTaskManager.java:141) 在 java.lang.Thread.run(Unknown Source) Caused by: java.lang.NoClassDefFoundError: Unable to load class org.spockframework.runtime.ErrorCollector 由于 在 org.codehaus.groovy.vmplugin.v5.Java5.configureClassNode(Java5.java:397) 处缺少依赖项 org/junit/runners/model/MultipleFailureException org.codehaus.groovy.ast.ClassNode.lazyClassInit(ClassNode.java:353) 在 org.codehaus.groovy.ast.ClassNode.getDeclaredMethods(ClassNode.java:981) 在 org.codehaus.groovy.ast.ImmutableClassNode.getDeclaredMethods(ImmutableClassNode.java:105) 在 org.spockframework.compiler.AstNodeCache.(AstNodeCache.java:65) 在 org.spockframework.compiler.SpockTransform$Impl.(SpockTransform.java: 52) 在 org.spockframework.compiler.SpockTransform.visit(SpockTransform.java:47) 在 org.codehaus.groovy.transform.ASTTransformationVisitor$3.call(ASTTransformationVisitor.java:395) ... 9 更多

我的代码尽可能简单。这是代码:

//The error is on the "p" letter of package
package hellowworld 

class HelloWorld{

    static main(args) {
    }

}

请注意,此错误仅在我添加 Spock jar 时发生。最接近的问题是Spock without maven or gradle,但显然问题不同。

【问题讨论】:

    标签: java eclipse groovy spock


    【解决方案1】:

    这是 Eclipse 中偶尔出现的问题之一,大多数人不知道为什么!

    通常要做的事情是尝试几种“策略”,并希望其中一种能奏效。如果不是,您必须回到 SO 并尝试寻求专家的支持。

    一个提示:根据我的经验,有时值得多次尝试“Refresh Gradle”和“Build all”。不仅如此,有时尝试其中任何一个实际上似乎都无济于事......但是几秒钟后红色框中的可怕x然后像晨雾一样消失!

    1. 在 Project Explorer 中突出显示/选择项目 --> 右键单击​​ --> Gradle --> 刷新 Gradle 项目
    2. 将光标放在编辑器中打开的代码文件中,按 Ctrl-B (Project --> Build all)
    3. 关闭编辑器中的所有文件,关闭 Eclipse 并重新启动 Eclipse
    4. 尝试以上各种组合
    5. 重新启动,然后以各种组合尝试上述方法

    如果这无法治愈它,您可能需要求助于 SO。

    【讨论】:

      【解决方案2】:

      我只是从包目录中剪切文件将其粘贴到外面,然后重新剪切粘贴到包中。效果很好,我不知道为什么。

      【讨论】:

      • 将光标设置在第一个字符之前,按回车键为我解决了这个问题。也许有一个空白字符需要删除。
      猜你喜欢
      • 1970-01-01
      • 2021-10-24
      • 1970-01-01
      • 1970-01-01
      • 2018-09-06
      • 1970-01-01
      • 1970-01-01
      • 2012-11-06
      • 1970-01-01
      相关资源
      最近更新 更多