Как настроить путь сборки Eclipse для использования зависимостей Maven?
Я хотел бы воспользоваться возможностями, которые предоставляет Maven для управления зависимостями в проекте. Мое краткое понимание того, как работает Maven, заключается в том, что он получит необходимые JAR-файлы и затем создаст проект с этими библиотеками.
В настоящее время у меня есть простой файл POM, настроенный в качестве теста:
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.jamesgoodwin.test</groupId>
<artifactId>com.jamesgoodwin.test</artifactId>
<version>0.0.1-SNAPSHOT</version>
<build>
</build>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>3.0.0.RELEASE</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
</dependencies>
</project>
Обычно при управлении зависимостями для проекта я добавляю проект или JAR в путь сборки проекта, а затем могу создать свой проект.
Но при использовании M2Eclipse зависимости не добавляются автоматически в путь сборки. Есть ли где-то, что мне нужно настроить, чтобы Eclipse знал, что Maven управляет зависимостями?
18 ответов
Если вы щелкнете правой кнопкой мыши по своему проекту, в разделе "maven" должна быть опция "включить управление зависимостями". Вот и все.
Если вы выполните
mvn eclipse:clean
с последующим
mvn eclipse:eclipse
если подготовит затмение .classpath
файл для вас. То есть эти команды выполняются против maven из командной строки, то есть за пределами затмения.
Я предполагаю, что вы используете m2eclipse, как вы упомянули об этом. Однако неясно, создали ли вы свой проект в Eclipse или нет, поэтому я постараюсь охватить все случаи.
Если вы создали проект "Java" в Eclipse (Ctrl+N > Java Project), щелкните правой кнопкой мыши проект в представлении Package Explorer и перейдите в Maven > Включить управление зависимостями (в зависимости от исходной структуры проекта, вы можете изменить это соответствует maven's, например, добавив
src/java
к исходным папкам на пути сборки).Если вы создали "Maven Project" в Eclipse (Ctrl+N > Maven Project), то он уже должен быть "Maven ready".
Если вы создали проект Maven вне Eclipse (вручную или с архетипом), просто импортируйте его в Eclipse (щелкните правой кнопкой мыши представление Package Explorer и выберите Import...> Maven Projects), и он будет "Maven ready".
Теперь, чтобы добавить зависимость, либо щелкните правой кнопкой мыши проект и выберите Maven > Добавить зависимость), либо отредактируйте pom вручную.
PS: избегайте использования maven-eclipse-plugin, если вы используете m2eclipse. В этом нет абсолютно никакой необходимости, это будет сбивать с толку, это приведет к некоторому беспорядку. Нет, правда, не используйте его, если вы действительно не знаете, что делаете.
Добавьте это в файл.classpath.
<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
Спасибо
Щелкните правой кнопкой мыши проект Configure > конвертировать в Maven проект
Затем вы можете увидеть все связанные с Maven меню для вашего проекта.
Мне понравилось это..
Щелкните правой кнопкой мыши по проекту -> настроить -> преобразовать в Maven проект. Щелкните правой кнопкой мыши по проекту -> Maven-> Добавить зависимости.
В Eclipse (Mars) отправляйтесь в:
Свойства проекта -> Maven. Убедитесь, что "Разрешить зависимости от проектов рабочей области" отключено.
Я не нашел maven или настроить меню, но нашел следующую кнопку, которая решила мою проблему:
Когда m2eclipse установлен правильно, он должен автоматически добавлять зависимости. Однако вы должны сгенерировать файлы проекта eclipse, введя:
mvn eclipse:m2eclipse
или, в качестве альтернативы, если вы не используете m2eclipse:
mvn eclipse:eclipse
Ничто из этого не решило мою проблему. но я нажал на pom.xml, внизу есть вкладка с названием зависимости. на этой вкладке он разделен на 2 раздела: один называется зависимостями, а другой называется управлением зависимостями. выберите каждую вещь в разделе зависимостей и нажмите кнопку Добавить, чтобы находиться под управлением управления зависимостями. закройте и снова откройте ваш проект.
Для более новых версий Eclipse (>=Mars) щелкните правой кнопкой мыши проект> configure > convert to Maven project
Добавление моих ответов по нескольким причинам:
- Каким-то образом ни один из перечисленных ответов напрямую не решил мою проблему.
- Не удалось найти "Включить управление зависимостями" под Maven. Я использую Eclipse 4.4.2 build on Wed, 4 февраля 2015.
Что помогло мне, так это еще одна опция в Maven, называемая "Обновить проект", а затем, когда я щелкаю по нему, открывается это окно, в котором есть флажок "Принудительное обновление снимка / выпусков". Я знаю, что настоящая цель этого флажка другая, но каким-то образом он решил проблему с зависимостями.
У меня был небольшой разброс, который вызвал некоторые проблемы - несколько подпроектов в одном проекте. В этом случае мне нужно было перейти в каждую отдельную папку, содержащую POM, выполнить команду mvn eclipse:eclipse, а затем вручную скопировать / объединить записи classpath в мой файл classpath проекта.
Возможно, вы могли бы заглянуть в maven-eclipse-plugin вместо M2Eclipse.
Там вы в основном добавляете конфигурацию maven-eclipse-plugin в ваш pom.xml и затем выполняете mvn eclipse:eclipse
который будет генерировать необходимый .project
а также .classpath
файлы для Eclipse. Тогда у вас будет правильный путь сборки в Eclipse.
Как правило, вы можете скопировать файл.classpath из рабочего проекта, поскольку здесь нет ничего конкретного проекта, если вы структурированы как стандартный проект Maven.
Убедитесь, что ваш POM соответствует соглашению об именах и назван строчными буквами как pom.xml
и не POM.xml
,
В моем случае все было правильно, но Eclipse все еще жаловался при попытке щелкнуть правой кнопкой мыши и Update project configuration
- сказал мне, что POM не может быть прочитан. Изменил название на строчные pom.xml
от POM.xml
- и это сработало.
Это сработало для меня в Eclipse Oxygen (4.7.0):
Щелкните правой кнопкой мыши Project -> Maven -> Select Maven Profiles..., затем установите флажок Rexy репозитория и нажмите OK.
Я тоже встречался с этим вопросом. Когда я добавляю зависимости в pom.xml
Я проверил в локальной папке /Users/xyz/.m2/
и банки уже загружены туда, но не могут добавить путь сборки затмения.
Моя версия затмения: выпуск Mars.2 (4.5.2)
щелкните правой кнопкой мыши проект > Maven > Включить разрешение рабочей области
И это решило мою проблему.