У меня есть ошибки сборки с m2eclipse, но не с maven2 в командной строке - мой m2eclipse неправильно настроен?

Я установил m2eclipse для создания java-проекта в Eclipse.

Я импортировал проект следующим образом:

Import->
Maven->
Existing Maven Projects->
Import Maven Projects->
- Select root directory
- Select pom file
- Click Finish

Чтобы убедиться, что m2eclipse фактически строил проект, я удалил целевой каталог и убедился, что он был воссоздан m2eclipse, и это было. Но в отличие от версии командной строки maven, в которой все было идеально, m2eclipse оставляет большое количество ошибок сборки в исходном коде.

Возможно ли, что я неправильно настроил m2eclipse? Как бы я это проверил?

Это github-ссылка на проект , который я пытаюсь построить. Я получаю ошибки сборки @Override в этой строке . В нем говорится «Метод createNewToken должен переопределить метод суперкласса».

9
задан Chris Collins 21 August 2010 в 19:45
поделиться

3 ответа

Обновление: Проблема такая же, как и описанная в Ошибки «Должен переопределить метод суперкласса» после импорта проекта в Eclipse , и вот что принятый ответ гласит:

Eclipse по умолчанию использует Java 1.5, и у вас есть классы, реализующие методы интерфейса (которые в Java 1.6 могут быть аннотированы с помощью @Override, но в Java 1.5 могут применяться только к методам, переопределяющим метод суперкласса).

Изменение уровня компилятора на Java 1.6 устранит проблему. Для этого измените конфигурацию подключаемого модуля компилятора:

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

И обновите конфигурацию проекта ( щелкните правой кнопкой мыши в проекте, затем Maven V Update Project Configuration ) действительно решит проблему в Eclipse. .

Или придерживайтесь версии 1.5, но удалите проблемные аннотации @Override.

Я не знаю, как у Тейлора все работает с уровнем компилятора Java 1.5. И я предполагаю, что проект не будет строиться из командной строки с JDK 5.


Но в отличие от версии maven для командной строки, которая построила все идеально, m2eclipse оставляет большое количество ошибок сборки в исходном коде. .

Трудно сказать, что именно происходит, не видя этих «ошибок» (действительно ли это ошибки?). Пожалуйста, предоставьте несколько следов.

Возможно ли, что я неправильно сконфигурировал m2eclipse? Как мне это проверить?

Одно отличие состоит в том, что m2eclipse по умолчанию использует встроенную версию Maven 3, которая, вероятно, не та версия, которую вы используете в командной строке. Вы можете изменить это с помощью Window V Preferences V Maven V Installation (и добавить свою собственную установку):

alt text

Но хотя я бы рекомендовал использовать ту же версию в Eclipse, чем в командной строке, это очень скорее всего, это не основная причина проблемы, сборки Maven 2 должны работать на Maven 3 без проблем.

13
ответ дан 4 December 2019 в 13:44
поделиться

Я проверил код. У меня точно такая же проблема. Код вроде просто сломан.

Редактировать: Определенно. Посмотрите на класс com.jappstart.service.auth.UserDetailsServiceImpl. Он хочет переопределить метод public final UserDetails loadUserByUsername (final String username) , но этот метод не существует в интерфейсе, который реализует класс, и не имеет суперкласса.

Редактировать: Хорошо, это не объясняет, почему он работает отдельно от maven. У меня это тоже работает. Очень странно. Похоже, что что-то происходит со сборкой, что не работает с m2eclipse.

Изменить: я почти уверен, что код работает, потому что байт-код изменен подключаемым модулем datanucleus. Когда я запускаю проект как сборку maven (щелкните правой кнопкой мыши-> Выполнить-> пакет maven), он успешно создает войну с m2eclipse. Итак, я предполагаю, что проблема в m2eclipse Maven Builder.

1
ответ дан 4 December 2019 в 13:44
поделиться

Ошибки переопределения появятся, если eclipse настроен на использование java 1.5 вместо 1.6. Проверить свойства проекта.

1
ответ дан 4 December 2019 в 13:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: