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

Я установил 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 должен переопределить метод суперкласса".

Ответ 1

Обновление: Проблема такая же, как описанная в Необходимо переопределить ошибки метода суперкласса после импорта проекта в 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) разрешает проблему в Eclipse.

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

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


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

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

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

Одно из отличий заключается в том, что m2eclipse использует по умолчанию встроенную версию Maven 3, которая, вероятно, не та же самая версия, которую вы используете в командной строке. Вы можете изменить это, используя Настройки V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V v

alt text

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

Ответ 2

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

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

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

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

Ответ 3

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