2011-02-01 3 views
57

Я создал проект Maven и хочу добавить все зависимости Maven в путь построения проекта в Eclipse. Когда я перехожу к Java Build Path> Add Library> Maven Managed Dependency> Далее в диалоговом окне свойств проекта, он просит меня использовать «Maven Project Setting» для настройки разрешения зависимости Maven.Как добавить библиотеку Maven Managed Dependencies в пути построения eclipse?

Мой вопрос заключается в том, как добавить зависимости maven в текущий путь сборки?

ответ

46

от типа командной строки:

mvn eclipse:eclipse 

это добавит все зависимости вы имеете в вашем pom.xml в затмении ...

однако, если вы не сделали ничего из этого прежде чем вам может понадобиться сделать еще один шаг только один раз.

Закрыть затмение, а затем запустите следующую команду из командной строки:

mvn -Declipse.workspace=<eclipse workspace> eclipse:add-maven-repo 

образец:

mvn -Declipse.workspace=/home/ft/workspaces/wksp1/ eclipse:add-maven-repo 
+8

[eclipse: add-maven-repo] (http://maven.apache.org/plugins/maven-eclipse-plugin/add-maven-repo-mojo.html) устарел в пользу [ eclipse: configure-workspace] (http://maven.apache.org/plugins/maven-eclipse-plugin/configure-workspace-mojo.html) – msrxthr

+26

Возможно, вам понадобится сделать: «нажмите прямо на проекте> Maven> Обновить проект ", чтобы активировать зависимости maven ... это сработало для меня, см. http://stackoverflow.com/questions/2037188/how-to-configure-eclipse-build-path-to-use-maven-dependencies –

+0

@AdrienBe он работал для меня тоже –

6

Вы можете установить M2Eclipse и открыть проект в Maven проекта в Eclipse. Он создаст необходимую конфигурацию и записи.

Это также полезно для последующих обновлений помпы. С плагином maven eclipse вам нужно будет вручную восстановить конфигурацию eclipse для каждого изменения.

+0

ссылка не работает. – vaibhavcool20

+0

http://www.eclipse.org/m2e/ – FaithReaper

0

Если вы используете плагин eclipse для выполнения своих задач maven (есть 2 из них: M2ecipse из соната типа «официальный» и q4e в Google Code), то есть варианты в контекстных меню (щелкните правой кнопкой мыши по проект) сделать это безболезненно.

Вы можете использовать оба плагина одновременно в своем рабочем столе eclipse и использовать их равномерно на основе каждого проекта.

2

Я мог бы решить проблему. Я получил следующее предупреждение при запуске затмения.

The Maven Integration requires that Eclipse be running in a JDK, because a number of Maven core plugins are using jars from the JDk. 

Please make sure the -vm option in eclipse.ini is pointing to a JDK and verify that 
Installed JRE's are also using JDK installs 

Я изменил файл eclipse.ini и добавил следующее и перезапущен затмение

-vm 
C:/Program Files/java/jdk1.6.0_21/bin/javaw.exe 

Теперь я могу видеть библиотека «Maven зависимостей» автоматически включается в путь компоновки Java.

11

У меня такая же проблема с использованием SpringSource Tool Suite. Я импортировал существующий проект Maven, который отлично работал в командной строке. Однако, когда я импортировал проект с помощью import -> Maven -> существующего проекта Maven, проект не импортировал корректный импорт, и я не мог добавить библиотеку зависимых зависимостей maven к пути сборки.

Если я запустил mvn install из командной строки, проект был успешно выполнен. Если бы я запустил mcln eclipse: eclipse, а затем импортировал в STS, тогда все работало, как ожидалось, за исключением того, что, конечно, мне пришлось бы повторно запускать это каждый раз, когда я обновлял pom, что было нежелательно.

Я работал вокруг него, запустив mvn eclipse:eclipse, а затем вручную обновил.Путь к классам для устранения зависимостей M2_REPO добавленных eclipse:eclipse и добавления записи в m2eclipse зависимость:

<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER"> 
    <attributes> 
    <attribute name="org.eclipse.jst.component.dependency" value="/WEB-INF/lib"/> 
    </attributes> 
</classpathentry> 

Затем я импортировал существующий проект Maven, и она работала, как ожидалось.

Это хак, и я не уверен, какие другие последствия выполняются eclipse:ecplise имеет значение при работе с m2eclipse. Но это по крайней мере позволило мне получить компиляцию моего проекта, чтобы я мог перейти к кодированию.


EDIT 1/4/2013

Обходной я отправил выше будет работать временно, и я никогда не обнаружил каких-либо негативных побочных эффектов. Тем не менее, у меня была эта проблема несколько раз сейчас, и каждый раз проблема заключается в том, что есть часть раздела, которое maven принимает, но m2eclipse barfs on.

Поэтому я рекомендую удалить части помпы 1 на 1, пока вы не сможете успешно охарактеризовать проект. Просто продолжайте работать maven -> update configuration после каждого редактирования pom, пока он не будет работать так, как должен. Обычно я начинаю с удаления блоков тегов конфигурации плагина по одному, начиная с наиболее подозрительных (т. Е. Наиболее сложных).

Как только он изменяет правильность, вы можете вернуть помпу, и он все равно будет работать, как ожидалось.

После того, как я бегу, я исследую оскорбительные конфигурации, чтобы попытаться выяснить, что такое «правильное» исправление (в любом случае, в соответствии с m2eclipse).

Надеюсь, этот подход приведет к постоянному решению, а не к урегулированию хакерского обходного пути!

+0

Основная причина моей проблемы оказалась проблемой в pom, связанной с компилятором Java. Поэтому я просто решил, что повторю, что решение выше - это просто работа, пока не будет обнаружена и исправлена ​​основная причина. После того, как я установил pom, импорт m2e в STS работал, как ожидалось. – Marquee

+0

и в середине 2016 года мне все равно нужно добавить эту запись в .classpath вручную (STS 3.8.1) ..... – razor

0

Попробуйте: Щелкните правой кнопкой мыши свой проект-> Maven-> Отключить управление зависимостями. И снова включите управление зависимостями.

30

Если у вас есть m2e установлен и проект уже является проект Maven, но зависимостей Maven по-прежнему не хватает, самый простой способ, который работал для меня был

  • правой кнопкой мыши проект,
  • Maven,
  • Update Project ...

Eclipse screenshot

+0

Случайно удаленные Maven Зависимости от моего пути сборки вместо моей сборки сборки и не могли получить их обратно . Это спасло меня час и головную боль! – Paul

+0

Работал для меня как шарм – minhas23

+3

не работает, и если я добавлю Maven Managed Dependencies (добавьте библиотеку в Java Build Path-> Libraries), ничего не произойдет ..... – razor

2

Если Maven-> Update Project не работает для вас? Эти шаги я религиозно следую. Удалите проект из eclipse (не удаляйте его из рабочего пространства) Закройте Eclipse , перейдите в командную строку и запустите эти команды.

mvn eclipse:clean 
mvn eclipse:eclipse -Dwtpversion=2.0 

Open Eclipse, импорт существующих проектов Maven. В нашем проекте вы увидите зависимость maven.

Надеюсь, что это сработает.

9

Убедитесь, что ваша стратегия упаковки, определенная в вашем pom.xml, не является «pom». Это должно быть «jar» или что-то еще.После того, как вы сделаете это, обновить ваше право проекта, щелкнув по нему и перейти на Maven -> Update Project ...

+0

Это подсказка, это подходит для меня. Благодаря! – Hardie82

+0

Это сработало и для меня! –

0

Вы могли бы также рассмотреть возможность Maven-зависимостей-плагин для вашего ПОМ:

<plugins> 
... 
    <plugin> 
     <artifactId>maven-dependency-plugin</artifactId> 
      <executions> 
       <execution> 
        <phase>process-resources</phase> 
        <goals> 
         <goal>copy-dependencies</goal> 
        </goals> 
        <configuration> 
         <outputDirectory>${project.build.directory}/lib</outputDirectory> 
        </configuration> 
       </execution> 
      </executions> 
    </plugin> 
... 
</plugins> 

Чем вы может запустить «mvn package», а maven скопирует все необходимые зависимости в каталог your_project_path/target/your_project_name/WEB-INF/lib /. Оттуда вы можете скопировать их в свой проект/lib dir и добавить в качестве внешних банок (конфигурирование вашего пути построения проекта)

6
  • Установите плагин M2E.
  • Щелкните правой кнопкой мыши свой проект и выберите «Настроить» -> «Преобразовать в проект Maven».

enter image description here

  • Затем pom.xml файл будет отображаться в вашем проекте. Дважды щелкните pom.xml, выберите вкладку Dependency, чтобы добавить банки, от которых зависит ваш проект.
Смежные вопросы