Настройка M2_REPO classpath - PullRequest
       6

Настройка M2_REPO classpath

17 голосов
/ 23 декабря 2010

У меня есть несколько вопросов, соответствующих этому.

  1. Что такое M2_REPO?
  2. Что делает эта команда?

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

  3. Зачем нам нужно делать выше?

Ответы [ 3 ]

24 голосов
/ 23 декабря 2010
  1. M2_REPO - это переменная, которая определяет, где на вашем диске находится репозиторий maven 2
  2. Это означает: добавить определение M2_REPO в файл XML, который определяет рабочее пространство eclipse
  3. Вы можете сделать то же самое вручную, если хотите.Это то, что я лично сделал.Просто зайдите в Window / Preferences и затем выберите Java / Build Path / Classpath Variables.Как только вы это сделаете, вы сможете наслаждаться maven интеграцией с Eclipse.Каждый раз, когда вы добавляете новую зависимость в ваш pom.xml, запускаете

    mvn eclipse: eclipse

и обновляете свое рабочее пространство, и вы получаете все новые библиотеки в classpath вашего проекта.

РЕДАКТИРОВАТЬ

Этот ответ был написан 5 лет назад.В настоящее время в любом дистрибутиве Eclipse есть плагин Maven, поэтому Eclipse может напрямую открыть проект Maven.Каждая зависимость, которую вы добавляете в ваш pom.xml, автоматически загружается и почти сразу же готова к использованию.

6 голосов
/ 14 июля 2011

Перейдите в Windows-> Настройки -> Java -> Путь сборки -> Переменные пути к классам -> Создать и добавьте следующее:

Имя = M2_REPO (или любое другое имя, которое вы дали для своего репозитория Maven) Путь= C: \ Users \ Administrator.m2 \ repository (здесь хранится мой)

1 голос
/ 08 мая 2015

Нет, вы не хотите, чтобы все ваши maven-артефакты были разбросаны по всей папке Libraries в eclipse project / package explorer.

Вы хотите, чтобы все артефакты maven были аккуратно завернуты в одну подпапку

Ресурсы Java> Библиотеки> Зависимости Maven

точно так же, как в прежние времена.

После того, как вы сделали все, что было предложено в остальных ответах, и все, что вы получили, по-прежнему все ваши maven-артефакты разбросаны по верхнему уровню списка верхнего уровня проводника pkg / prj, причина в том, что вы только что обновились до последняя и самая лучшая версия Eclipse, а также версия плагина m2eclipse, которую вы не обновили с этой версией Eclipse.

Вы ТАКЖЕ не хотите, чтобы запускал mvn eclipse: eclipse или eclipse: config .. каждый раз, когда вы добавляете новые зависимости maven. Это просто идет вразрез с тем, что означает Maven.

Работа вокруг

Пока m2eclipse нащупывает в темноте в новой шлепающей версии затмения,

  1. Сохраните ваш текущий .classpath.

  2. замените ваш eclipse .classpath на POME.C (обычный старый maven eclipse .classpath): http://code.google.com/p/synthfuljava/source/browse/apps/durian/.classpath.

  3. Не забудьте изменить версию Java на свою.

  4. Не забудьте добавить обратно все ваши нестандартные пути, найденные в вашем файле .classpath.

  5. Теперь, будьте хорошим гражданином и отправьте сообщение об ошибке m2eclipse (если я этого еще не сделал) для этой версии Eclipse, сказав им, что m2eclipse не создает good'ol POME.C, объясняя, как прекрасно и удобно, что POME.C есть.

Но так как гугл-код уходит в августе этого года (это боль, гугл), вот тело файла.

<?xml version="1.0" encoding="UTF-8"?>
<classpath>
  <classpathentry kind="src" output="target/classes" path="src/main/java">
    <attributes>
      <attribute name="optional" value="true"/>
      <attribute name="maven.pomderived" value="true"/>
    </attributes>
  </classpathentry>
  <classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources">
    <attributes>
      <attribute name="maven.pomderived" value="true"/>
    </attributes>
  </classpathentry>
  <classpathentry kind="src" output="target/test-classes" path="src/test/java">
    <attributes>
      <attribute name="optional" value="true"/>
      <attribute name="maven.pomderived" value="true"/>
    </attributes>
  </classpathentry>
  <classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
    <attributes>
      <attribute name="maven.pomderived" value="true"/>
      <attribute name="org.eclipse.jst.component.dependency" value="/WEB-INF/lib"/>
    </attributes>
  </classpathentry>
  <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7">
    <attributes>
      <attribute name="maven.pomderived" value="true"/>
    </attributes>
  </classpathentry>
  <classpathentry kind="output" path="target/classes"/>
</classpath>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...