Подтвердить что ты не робот

Настройка пути класса M2_REPO

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

  • Что такое M2_REPO?
  • Что делает эта команда?

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

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

4b9b3361

Ответ 1

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

    mvn eclipse: eclipse

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

ИЗМЕНИТЬ

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

Ответ 2

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

Name = M2_REPO (или какое имя вы дали для своего репозитория Maven) Path = C:\Users\Administrator.m2\repository (здесь сохраняется Mine)

Ответ 3

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

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

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

как и в дни gd'old.

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

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

Работайте

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

  • Сохраните текущий .classpath.

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

  • Не забудьте изменить версию java на ваш.

  • Не забудьте добавить все ваши пользовательские пути, отличные от maven, найденные в вашем каталоге .classpath.

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

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

<?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>