Я думал, что дать ответ может быть лучше, чем писать комментарии.
плагин Maven Eclipse,
Предположим, у вас есть следующий каталог проекта:
/hello-world/
+-- src/
+-- pom.xml
Теперь запустить mvn eclipse:eclipse
внутри этого каталога eclipsify это. Это создаст некоторые файлы метаданных:
/hello-world/
+-- src/
+-- pom.xml
+-- .project
+-- .classpath
Файл .project
будет содержать строку комментария с утверждением
NO_M2ECLIPSE_SUPPORT: файлы проекта, созданные с помощью Maven-плагин Eclipse, которые не поддерживаются в M2Eclipse.
.classpath
будет иметь записи для зависимостей, подобные этим:
<classpathentry kind="var" path="M2_REPO/com/google/guava/guava/18.0/guava-18.0.jar" sourcepath="M2_REPO/com/google/guava/guava/18.0/guava-18.0-sources.jar"/>
<classpathentry kind="var" path="M2_REPO/junit/junit/4.12/junit-4.12.jar" sourcepath="M2_REPO/junit/junit/4.12/junit-4.12-sources.jar"/>
<classpathentry kind="var" path="M2_REPO/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.jar" sourcepath="M2_REPO/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3-sources.jar"/>
Обратите внимание, что эти записи с использованием затмение внутренней переменной: M2_REPO
, который указывает на локальный репозиторий Maven. После того, как все эти записи являются простыми библиотечными записями. То же самое, что вы получите при добавлении библиотеки в путь сборки.
Если вы импортируете это через «Существующие проекты в рабочее пространство», вы точно получите проект, который вы описали. Библиотеки просты. записи о путях пути. И - что более важно - у него нет природы maven (отсутствует значок «M»). Это было упомянуто в файле .project
. Без характера maven у вас нет полезных и важных функций для этого проекта.
Затмение Maven плагин
Итак, давайте ремонт этого. Сначала создайте резервную копию каталога проекта (в случае чего-то не так).
Первый шаг - удалить проект из затмения, но не из жесткого диска.Поэтому просто удалите его в eclipse, но не галочка «Удалить содержимое проекта на диске». Вы все еще хотите иметь этот проект, не так ли?
Шаг 2: Перейдите в каталог проекта и удалите любые метафайлы eclipse (я уже говорил вам). Впоследствии у вас есть тот же каталог проекта, что и в исходной ситуации.
Шаг 3: Теперь вы можете импортировать этот проект в eclipse с помощью «Существующих проектов Maven». Перейдите в каталог, содержащий ваш проект (может быть каталог рабочей области) и выберите ваш проект.
После этого вы заметите, что этот проект теперь имеет характер maven. На значке проекта есть значок «M». Кроме того, вы увидите все библиотеки под узлом «Maven Dependencies».
Почему это так? Давайте посмотрим на мета-файлы снова:
Файл .project
теперь также содержит следующие строки (среди прочих):
<buildCommand><name>org.eclipse.m2e.core.maven2Builder</name></buildCommand>
<nature>org.eclipse.m2e.core.maven2Nature</nature>
.classpath
теперь также имеет следующую запись:
<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
И плагин M2E теперь делает все остальное. Легко, не так ли?
Да. Не используйте плагин eclipse из maven. Используйте плагин maven из eclipse. Средство: не запускайте 'mvn eclipse: eclipse' в любом проекте, но импортируйте проект как проект maven в eclipse и пусть плагин M2E выполняет свою работу. – Seelenvirtuose
Ядром любого проекта maven является каталог 'src' и' pom.xml'. Ничего больше. При импорте Eclipse создает файлы метаданных и каталоги ('.project',' .classpath', '.settings /'). Поэтому вы можете удалить их в первую очередь. Кстати: плагин eclipse из maven также создает их, но они тогда не всегда подходят. – Seelenvirtuose
@Seelenvirtuose Спасибо за ваши материалы. Удалите каталоги сейчас и попробуйте. – Lucky