Что такое org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER и как мне заставить его работать в IntelliJ?
У меня есть Java-код, написанный с помощью Eclipse, с которым я пытаюсь работать в IntelliJ.
Кодовая база состоит из около 20 пакетов Java, созданных рядом друг с другом в виде отдельных проектов. (Есть около двадцати каталогов, каждый из которых содержит файлы .classpath
и .project
.) Они имеют зависимости друг от друга. Предположительно, все прекрасно работает в Eclipse.
Я импортировал IntelliJ из формата сборки Eclipse. В основном это работало, за исключением того, что Project Settings -> Modules -> Dependencies
показывает, что многие проекты имеют нерегулярную зависимость от org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER
. Кажется, что это происходит из следующих записей в файлах .classpath
:
<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
<attributes>
<attribute name="maven.pomderived" value="true"/>
<attribute name="org.eclipse.jst.component.nondependency" value=""/>
</attributes>
</classpathentry>
Пакеты с этой зависимостью не строятся в IntelliJ, потому что они не могут разрешить зависимости для других пакетов.
Я подозреваю, что org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER
- это какой-то трюк, специфичный для Eclipse, который не переводится в другую среду IDE, но я не могу точно определить, что здесь происходит.
Что такое org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER
? Должен ли я делать что-то особенное для среды сборки, которая использует ее, чтобы заставить ее работать вне Eclipse?
IntelliJ Ultimate 2016.1.2, Java 1.8.0_91, OS X 10.11.5
Я работал над этой проблемой, перейдя в Project Settings- > Modules и вручную добавляя зависимости модулей между моими различными проектами до тех пор, пока все не построится. Достойный, но эффективный.
Я оставляю этот вопрос здесь, хотя, поскольку короткое определение org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER
все равно было бы полезно для меня.
Ответы
Ответ 1
Введение
Плагин IntelliJ IDEA Maven-2 интегрирует Maven-2 в IntelliJ IDEA.
Во-первых,
![введите описание изображения здесь]()
Во-вторых,
![введите описание изображения здесь]()
В-третьих,
![введите описание изображения здесь]()
Подобно плагину Ant, плагин Maven-2 позволяет выполнять цели (или фазы) и перенаправлять вывод (с подсветкой ошибок) в окно сообщения.
Установка
Доступно для IDEA 6.0 (до версии 1.1 также для IDEA 5.0) через встроенный менеджер плагинов IDEA или непосредственно из
{{http://plugins.intellij.net/plugin/?id=1166}}.
Если вы загрузили плагин, просто извлеките содержимое двоичного архива в каталог плагина IDEA.
Выделенная папка (idea-maven-plugin) содержит другую папку lib, где находятся все JAR.
Использование
Предполагая, что вы указали переменные среды JAVA_HOME и M2_HOME, плагин должен быть готов к запуску без какой-либо дополнительной настройки.
Если JAVA_HOME не определен, плагин использует внутренний IDEA JDK.
Если M2_HOME не определен, вы должны указать домашний каталог Maven-2 в диалоговом окне конфигурации. Это изменение, начиная с версии 1.1 плагина.
До версии 1.1 Maven был вызван через start script с нормальной установкой Maven. Чтобы получить лучший доступ к запущенному процессу Maven, Maven теперь вызывается непосредственно, начиная процесс Java. Это, например, позволяет завершить выполняемый пользователем процесс Maven.
Конфигурация может быть выполнена двумя способами:
Либо через настройки IDE, либо в настройках проекта.
Настройки проекта всегда переопределяют настройки приложения!
Плагин не будет работать с версиями IDEA до 6.0!
Плагин был протестирован под Windows и Linux. Он не был протестирован в Mac OS X.
Ссылка на ресурс:
Ответ 2
Я придумал решение, которое работает для меня, но щедрость все еще открыта (потому что я не могу ее закрыть: P), и пойдет к тому, кто может предоставить более подробное объяснение.
Решение: Запустите mvn eclipse:clean
и mvn eclipse:eclipse
. Это заставляет maven очистить файл .classpath и перестроить его из pom.xml. Несколько загадочно, он больше не содержал страшную ссылку на org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER
.
Возможно, это устаревший тег/переменная в Eclipse.