maven eclipse - 不支持的major.minor版本52.0

时间:2015-03-28 06:31:16

标签: eclipse maven unsupported-class-version

我正在使用apache maven 3.2.3来编译我的java项目。

当我使用命令行使用

启动编译时
mvn clean compile

然后它完美无缺。

但是当我从eclipse(LUNA)运行maven build时,它总是因以下错误而失败:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.5.1:compile (default-compile) on project MSDPEx: Execution default-compile of goal org.apache.maven.plugins:maven-compiler-plugin:2.5.1:compile failed: An API incompatibility was encountered while executing org.apache.maven.plugins:maven-compiler-plugin:2.5.1:compile: java.lang.UnsupportedClassVersionError: com/sun/tools/javac/Main : Unsupported major.minor version 52.0
[ERROR] -----------------------------------------------------
[ERROR] realm =    plugin>org.apache.maven.plugins:maven-compiler-plugin:2.5.1
[ERROR] strategy = org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy
[ERROR] urls[0] = file:/home/rvnath/.m2/repository/org/apache/maven/plugins/maven-compiler-plugin/2.5.1/maven-compiler-plugin-2.5.1.jar
[ERROR] urls[1] = file:/home/rvnath/.m2/repository/org/codehaus/plexus/plexus-utils/3.0/plexus-utils-3.0.jar
[ERROR] urls[2] = file:/home/rvnath/.m2/repository/org/codehaus/plexus/plexus-compiler-api/1.9.1/plexus-compiler-api-1.9.1.jar
[ERROR] urls[3] = file:/home/rvnath/.m2/repository/org/codehaus/plexus/plexus-compiler-manager/1.9.1/plexus-compiler-manager-1.9.1.jar
[ERROR] urls[4] = file:/home/rvnath/.m2/repository/org/codehaus/plexus/plexus-compiler-javac/1.9.1/plexus-compiler-javac-1.9.1.jar
[ERROR] urls[5] = file:/home/rvnath/.m2/repository/junit/junit/3.8.1/junit-3.8.1.jar
[ERROR] Number of foreign imports: 1
[ERROR] import: Entry[import  from realm ClassRealm[maven.api, parent: null]]
[ERROR] 
[ERROR] -----------------------------------------------------
[ERROR] -> [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.

使用eclipse和maven配置是否存在问题?如果是这样,我该如何解决?

如果有帮助,我的环境如下:

OS:  Ubuntu 14.10
JDK: java version "1.7.0_75"
     OpenJDK Runtime Environment (IcedTea 2.5.4) (7u75-2.5.4-1~utopic1)
     OpenJDK 64-Bit Server VM (build 24.75-b04, mixed mode)

Eclipse installed JRE's:  java-7-openjdk-amd64 (default)

3 个答案:

答案 0 :(得分:9)

在过去的2到3周内,这个问题让我很烦恼。

这种问题已被多次询问,并且有很多答案。但也可以发布我的答案,因此有这种情况的人可能会受益。

最后我发现我的系统也安装了jdk1.8,并且maven的cmdline启动使用了这个版本,而eclipse使用的是1.7。所以,我做了以下几点:

  1. 打开Eclipse-> Window-> preferences->已安装的JRE
  2. 点击添加按钮,选择我的jdk1.8的路径,完成
  3. 现在我能够编译项目,即使我不知道确切的原因,为什么它不能用jdk1.7编译。

答案 1 :(得分:3)

首先。如果您正在使用Maven,事实是在pom文件中,而不是在Eclipse中。所以你必须在Maven而不是在Eclipse中修复问题。

首先,您必须将maven-compiler-plugin更新为3.2或3.3版。并像这样配置:

<project>
  [...]
  <build>
    [...]
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.3</version>
        <configuration>
          <source>1.7</source>
          <target>1.7</target>
        </configuration>
      </plugin>
    </plugins>
    [...]
  </build>
  [...]
</project>

您应该从命令行检查您的构建,而不是从eclipse中检查。此外,您应该了解使用sourcetarget选项和JDK之间的区别。

答案 2 :(得分:0)

以上对我没有用,但确实如此。 添加到 pom.xml

<project ....>
    <properties>
        <maven.compiler.source>1.7</maven.compiler.source>
        <maven.compiler.target>1.7</maven.compiler.target>
    </properties>
</project>

其中1.7是您打算使用的Java版本。这会覆盖maven编译器设置,因此最好从此处进行调试。