Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

maven eclipse - Unsupported major.minor version 52.0

I am using apache maven 3.2.3 to compile my java project.

When I use the command line to launch the compile using

mvn clean compile

then it works perfectly.

But when I run maven build from eclipse (LUNA), it always fails with the below error:

[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.

Is there a problem in configuration with eclipse and maven? If so, how do I solve this?

If it helps, my environment is the below:

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)
like image 287
Mopparthy Ravindranath Avatar asked Mar 28 '15 06:03

Mopparthy Ravindranath


2 Answers

This problem was vexing me for the last 2...3 weeks.

This kind of question has been asked several times, and many answers. But posting my answer as well, so someone having this situation may benefit.

Finally I figured out that my system also had a jdk1.8 installed, and that the cmdline launch of maven was using this version, while the eclipse was using 1.7. So, I did the following:

  1. open Eclipse->Window->preferences->Installed JRE's
  2. click Add button, select the path to my jdk1.8, finish

Now I am able to compile the project, even though I do not know the precise reason, why it should fail to compile with jdk1.7.

like image 147
Mopparthy Ravindranath Avatar answered Oct 03 '22 00:10

Mopparthy Ravindranath


First. If you are working with Maven the truth is in the pom file and not in Eclipse. So you have to fix the problem in Maven and not in Eclipse.

First you have to update the maven-compiler-plugin to version 3.2 or 3.3. and configure it like this:

<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>

You should check your build from command line and not from within eclipse. Furthermore you should be aware of the difference between using source, target option and JDK.

like image 43
khmarbaise Avatar answered Oct 03 '22 01:10

khmarbaise