2015-03-28 3 views
5

Я использую apache maven 3.2.3 для компиляции моего проекта java.maven eclipse - Неподдерживаемый майор.minor version 52.0

Когда я использую командную строку для запуска компиляции с помощью

mvn clean compile 

, то он работает отлично.

Но когда я бегу Maven сборки от затмения (LUNA), он всегда терпит неудачу с ошибкой ниже:

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

Есть проблема в конфигурации с затмением и мавена? Если да, то как это решить?

Если это помогает, моя среда ниже:

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) 

ответ

2

Первый. Если вы работаете с Maven, истина находится в файле pom, а не в Eclipse. Поэтому вам нужно решить проблему в Maven, а не в Eclipse.

Сначала вы должны обновить плагин maven-compiler до версии 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> 

Вы должны проверить свою сборку из командной строки, а не из затмения. Кроме того, вы должны знать разницу между использованием опции source, target и JDK.

8

Эта проблема была досадно меня за последние 2 ... 3 недели.

Этот вопрос был задан несколько раз и много ответов. Но отправляю также мой ответ, поэтому кто-то, у кого есть такая ситуация, может принести пользу.

Наконец-то я понял, что моя система также установила jdk1.8, и что запуск maven с помощью cmdline использовал эту версию, в то время как eclipse использовал 1.7. Таким образом, я сделал следующее:

  1. открыт Eclipse-> Window-> Настройки-> Installed JRE в
  2. нажмите кнопку Добавить, выберите путь к моей jdk1.8, закончить

Теперь я я могу скомпилировать проект, хотя я не знаю точной причины, почему он не должен компилироваться с помощью jdk1.7.

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, поэтому хорошо отлаживать отсюда.

Смежные вопросы