Maven-compiler-plugin:3.3:testCompile(default-testCompile)编译时失败属性$ Error无法强制转换为Attribute $ Class

时间:2015-07-22 18:21:24

标签: java maven maven-compiler-plugin

我一直在寻找解决这个问题的方法,但我似乎无法找到正确的答案。我相信,我有一个独特的情况,因此问题可能更难解决 问题的核心是运行mvn test命令时出现的错误消息:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.3:testCompile (default-testCompile) on project DriveServiceFitnesse: Fatal error compiling: java.lang.ClassCastException: com.sun.tools.javac.code.Attribute$Error cannot be cast to com.sun.tools.javac.code.Attribute$Class -> [Help 1]
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException

但是mvn compile没有通过错误。 但由于我需要mvn test来生成测试源,我的测试实际上并没有起作用。我知道这是因为,当我运行测试时,我收到此错误:

    Error:java: java.lang.ClassCastException: 
com.sun.tools.javac.code.Attribute$Error cannot be cast to 
com.sun.tools.javac.code.Attribute$Class

用于编译和运行的项目没有问题。当我尝试将项目从Maven转换为Gradle时出现此问题。我遇到了类似的问题,所以我关闭了分支并取下原来的工作代码/项目,现在我似乎无法修复它。

对此事的任何帮助都将受到高度赞赏。我会发布我的pom.xml文件,如果这可能会有所帮助。

*编辑:基于我在stacktrace消息中粘贴的建议:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.3:testCompile (default-testCompile) on project DriveServiceFitnesse: Fatal error compiling: java.lang.ClassCastException: com.sun.tools.javac.code.Attribute$Error cannot be cast to com.sun.tools.javac.code.Attribute$Class -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.3:testCompile (default-testCompile) on project DriveServiceFitnesse: Fatal error compiling
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:216)
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
        at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:116)
        at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:80)
        at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51)
        at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128)
        at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:307)
        at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:193)
        at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:106)
        at org.apache.maven.cli.MavenCli.execute(MavenCli.java:862)
        at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:286)
        at org.apache.maven.cli.MavenCli.main(MavenCli.java:197)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:606)
        at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)
        at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)
        at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)
        at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)
Caused by: org.apache.maven.plugin.MojoExecutionException: Fatal error compiling
        at org.apache.maven.plugin.compiler.AbstractCompilerMojo.execute(AbstractCompilerMojo.java:836)
        at org.apache.maven.plugin.compiler.TestCompilerMojo.execute(TestCompilerMojo.java:153)
        at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134)
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208)

3 个答案:

答案 0 :(得分:1)

修正了此错误。是我的疏忽。问题是,由于某种原因,我使用“项目结构”(在intellij中)导入的本地jar已经以某种方式过期,即库仍然列出,但没有被正确地拉入项目。我删除了引用并重新导入,事情似乎有效......叹息。

答案 1 :(得分:0)

我尝试了多种解决方案来查找问题的根本原因,并发现我的机器比通常的时间花了太多时间来编译类,因此我们尝试增加配置中的maxmem选项。

我将我的编译器插件maxmem选项从 1024m更改为2048m ,并且此问题已解决

答案 2 :(得分:0)

对我来说,这个问题是由于我试图在我的 pom.xml 中使用“默认 maven 配置文件”以及另一个 e2e 测试配置文件引起的。我切换回普通的 pom,现在可以使用了。仍然不确定真正的原因。