m2eclipse устанавливает соответствие JDK 1.4 - PullRequest
9 голосов
/ 13 июня 2010

Используя eclipse 3.5, когда я создаю новый проект maven, m2eclipse автоматически добавляет J2SE1.4 в библиотеки и уровень соответствия компилятора до 1.4 (Свойства проекта> Компилятор Java).Моя системная библиотека JRE - 1.6, а уровень соответствия компилятора по умолчанию - 1.6.У меня даже не установлено 1.4.Могу ли я заставить m2eclipse использовать мои настройки по умолчанию и запретить ему изменять настройки проекта?

Ответы [ 3 ]

6 голосов
/ 13 июня 2010

Он должен соответствовать конфигурации maven-compiler-plugin:

<build>
    [...]
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <configuration>
          <source>1.6</source>
          <target>1.6</target>
        </configuration>
      </plugin>
    </plugins>
    [...]
  </build>

(даже если, как указано в этой теме , он не будет работать для аспекта-j)

Этот поток напоминает нам о разнице между m2eclipse в eclipse и скриптом maven:

Стоит отметить, что это применимо только кв «режим разработки», когда m2eclipse конфигурирует инструменты Eclipse, такие как JDT, AJDT и WTP, в соответствии с конфигурацией из pom.xml.Вот как вы обычно кодируете и отлаживаете свое приложение, запускаете модульные тесты (с помощью Запуск от имени ... / JUnit test) или запускаете на сервере веб-приложений (Запуск от имени ... / Серверное приложение).

Однако есливы используете Run as ... / Maven build ... или создаете соответствующую конфигурацию запуска из меню Run / Debug, затем вы можете выбрать JVM, которая используется для запуска Maven, и все ваши настройки компилятора будут соблюдаться так же, каксоблюдается в командной строке.

Итак:

  <plugins>
     <plugin>
       <groupId>org.apache.maven.plugins</groupId>
       <artifactId>maven-compiler-plugin</artifactId>
       <configuration>
         <verbose>true</verbose>
         <fork>true</fork>
         <executable><!-- path-to-javac --></executable>
         <compilerVersion>1.3</compilerVersion>
       </configuration>
     </plugin>
   </plugins>

m2e не использует (и не может) использовать внешний компилятор Java, поэтому он просто игнорирует эти параметры конфигурации,m2 учитывает только параметры исходного / целевого maven-compiler-plugin.

4 голосов
/ 13 июня 2010

Уровень соответствия JDK получен из проекта maven, а не наоборот. Другими словами, вам нужно настроить плагин компилятора maven для соответствия уровню 1.6, и затем m2eclipse выведет соответствующие настройки в Eclipse:

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-compiler-plugin</artifactId>
  <version>2.0.2</version>
  <configuration>
    <source>1.6</source>
    <target>1.6</target>
  </configuration>
</plugin>

pom.xml - это мастер, а не m2eclipse.

0 голосов
/ 17 января 2018

В итоге я сделал mvn eclipse:eclipse для проекта и F5-обновление проекта в Eclipse, и это правильно настроило настройку соответствия Java.

Моя установка выполняется следующим образом.Используя Кеплера.Java 1.7 настроена по умолчанию в настройках Eclipse (как уже упоминалось, похоже, в любом случае игнорируется из-за того, что находится в pom.xml).Я импортировал кучу проектов Maven в Eclipse.Все обнаружилось как уровень соответствия Java 1.4, и даже путь сборки проектов перечисляет среду выполнения Java 1.4.Я дважды проверил, что 1.7 правильно указано в pom.xml, запрашивая эффективный pom в командной строке, чтобы подтвердить, что параметр присутствует и правильный в pom:

mvn help:effective-pom -Doutput=eff.xml

Это показало, что присутствовали правильные настройки:

<plugin>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>2.5.1</version>
    <configuration>
        <source>1.7</source>
        <target>1.7</target>
        <fork>true</fork>
    </configuration>
</plugin>

Предполагаю, проблема в части импорта плагина m2e, в Eclipse отображается версия: 1.4.0.20130601-0317

...