У меня есть несколько вопросов, соответствующих этому.
- Что такое M2_REPO?
-
Что делает эта команда?
mvn -Declipse.workspace=<your_workspace_location> eclipse:add-maven-repo
-
Зачем нам нужно делать выше?
У меня есть несколько вопросов, соответствующих этому.
Что делает эта команда?
mvn -Declipse.workspace=<your_workspace_location> eclipse:add-maven-repo
Зачем нам нужно делать выше?
Вы можете сделать то же самое вручную, если хотите. Это то, что я лично сделал. Просто зайдите в Window/Preferences, а затем выберите переменные Java/Build Path/Classpath. Как только вы это сделаете, вы сможете наслаждаться интеграцией maven с eclipse. Каждый раз, когда вы добавляете новую зависимость к вашему pom.xml, запустите
mvn eclipse: eclipse
и обновите рабочее пространство, вы получите все новые библиотеки в classpath вашего проекта.
ИЗМЕНИТЬ
Этот ответ был написан 5 лет назад. В наши дни любое распространение eclipse имеет плагин maven, поэтому eclipse может напрямую открыть проект maven. Каждая зависимость, которую вы добавляете в свой pom.xml, автоматически загружается и почти сразу же готова к использованию.
Перейдите в Windows- > Preference → Java → Путь сборки → Переменные класса → Создать и добавьте следующее:
Name = M2_REPO (или какое имя вы дали для своего репозитория Maven) Path = C:\Users\Administrator.m2\repository (здесь сохраняется Mine)
Нет, вы не хотите, чтобы все ваши артефакты 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>