Как добавить библиотеку" управляемые зависимости Maven " в путь сборки eclipse?


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

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

13 58

13 ответов:

из командной строки введите:

mvn eclipse:eclipse

это добавит все зависимости, которые у вас есть в вашем pom.xml в eclipse...

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

закройте eclipse, затем выполните следующую команду из оболочки:

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

пример:

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

Если у вас m2e установлен, и проект уже является проектом maven, но зависимости maven все еще отсутствуют, самый простой способ, который работал для меня, был

  • щелкните правой кнопкой мыши проект,
  • Maven,
  • Обновление Проекта...

Eclipse screenshot

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

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

Я работал вокруг него, запустив mvn eclipse:eclipse а потом обновить вручную .classpath для устранения зависимостей 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. Но это, по крайней мере, позволило мне получить компиляцию моего проекта, чтобы я мог перейти к кодированию.


изменить 1/4/2013

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

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

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

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

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

убедитесь, что ваша стратегия упаковки определена в вашем pom.xml-это не "pom". Это должна быть" банка " или что-нибудь еще. Как только вы это сделаете, обновите свой проект, щелкнув его правой кнопкой мыши и перейдите в Maven -> обновить проект...

  • установить плагин M2E.
  • щелкните правой кнопкой мыши проект и выберите Настроить -> преобразовать в Maven-проекта.

enter image description here

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

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

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

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

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

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

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

теперь я вижу, что библиотека "Maven Dependency" автоматически включается в путь сборки java.

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

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

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

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

выполните следующие действия

1) Заходим в проекты класса path

2) Перейти в библиотеку tab

3) Нажмите на "добавить библиотеку"

4) В открывшемся диалоге выберите Maven управляемые зависимости

5) Нажмите кнопку Далее

6) в новом диалоге нажмите на Управление параметрами проекта

7) В открывшемся диалоге установите флажок Разрешить зависимости из рабочей области

8) Нажмите кнопку Восстановить по умолчанию

9) он будет делать некоторый процесс, и теперь у вас будут все ваши зависимости в вашей библиотеке.

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

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

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

вы также можете рассмотреть возможность Maven-dependency-plugin для вашего pom:

<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 и добавить в качестве внешних банок (настройка параметров проекта buildpath)

Если вы случайно удалили зависимость Maven из библиотеки. Добавить ниже В пом.xml

<build>     
        <plugins>
            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.3</version>
                <configuration>
                    <source>1.7</source>
                    <target>1.7</target>
                </configuration>
            </plugin>
        </plugins>
</build>