Как настроить путь сборки 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 или нет, поэтому я постараюсь охватить все случаи.

  1. Если вы создали проект "Java" в Eclipse (Ctrl+N > Java Project), щелкните правой кнопкой мыши проект в представлении Package Explorer и перейдите в Maven > Включить управление зависимостями (в зависимости от исходной структуры проекта, вы можете изменить это соответствует maven's, например, добавив src/java к исходным папкам на пути сборки).

  2. Если вы создали "Maven Project" в Eclipse (Ctrl+N > Maven Project), то он уже должен быть "Maven ready".

  3. Если вы создали проект 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 > Включить разрешение рабочей области

И это решило мою проблему.

Другие вопросы по тегам