Вы столкнулись с ошибкой компиляции для ограниченных классов , упомянутой в FAQ для m2eclipse, и применили то же решение, что и в FAQ:
Проекты с использованием классов от rt.jar
,
такие как com.sun.*
(и некоторые другие)
может иметь ошибки компиляции, такие как:
«Ограничение доступа: тип RE
недоступен из-за ограничений на
необходимая библиотека
/lib/rt.jar ". Такие ошибки
указывают на использование не-API классов и
эти правила доступа определяются
Затмение JDT.
Вы можете изменить настройки компилятора на
не подведет эти ограничения в
настройки рабочего пространства в Window /
Предпочтения / Java / Компилятор /
Ошибки / Предупреждения / Устаревшие и
API с ограниченным доступом / Запрещенная ссылка
(правила доступа) / Предупреждения; или же
за проект от Project / Properties
/ Java Compiler / Ошибки / Предупреждения
/ Устаревший и ограниченный API /
Запрещенная ссылка (правила доступа) /
Предупреждения
Это, конечно, не должно влиять на JDK вне Eclipse. Сказав это, вы написали в комментарии, что Eclipse настроен на использование того же JRE, что и Maven, но ... Maven нужен JDK для компиляции классов (ему нужен javac). Поэтому я предполагаю, что вы на самом деле используете компилятор не-javac и у вас где-то объявлен compilerId . Примерно так:
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<compilerId>eclipse</compilerId>
</configuration>
<dependencies>
<dependency>
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-compiler-eclipse</artifactId>
<version>xxxx</version>
</dependency>
</dependencies>
</plugin>
Это говорит компилятору-плагину использовать компилятор eclipse и, так или иначе, его настройки.
РЕДАКТИРОВАТЬ: Согласно комментарию, упомянутая выше гипотеза не распространяется на ФП.
Моим следующим предложением было попытаться воспроизвести проблему, но запустить mvn clean
до compile
например ::1010**
mvn clean install
Как сообщалось, похоже, что это решает проблему (как я и ожидал). Я должен был подумать об этом немедленно: Eclipse создает файлы .class даже для классов с ошибками компиляции. Следовательно (не очень) странное поведение на уровне командной строки maven решается с помощью clean
.
На самом деле мой совет - использовать настройки, указанные в Как настроить проект Maven для использования отдельных папок вывода в Eclipse , чтобы избежать подобных проблем. Это было на самом деле значение по умолчанию m2eclipse до версии 0.9.4. Причины этого изменения обсуждаются в этой ветке списка разработчиков .