Импорт четырех модулей в первый раз покажет ошибки компиляции, как и ожидалось, так как я не запускал плагин eclipse. Когда мой локальный репозиторий пуст, запуск eclipse clean разрешит все ошибки компиляции и зависимости в моей локальной рабочей области.
Пока все хорошо. Только один вопрос: затмение чистое, вы не имеете в виду eclipse:clean
, но очищаете под Eclipse, не так ли?
Если я должен был внести некоторые незначительные изменения кода в модуль B и снова запустить плагин eclipse, ошибки компиляции появятся в модулях A и B. Составьте ошибки в отношении классов, которые не могут быть найдены. Его аналогичный модуль C больше не находится в пути к классам для A и B.
Я не уверен, почему вы запускаете плагин maven eclipse после того, как незначительный код изменится на модуль B, но, скажем, вам нужно, например, потому что вы добавили зависимость (было бы полезно упомянуть цель, которую вы запускаете, но неважно). При использовании плагина maven eclipse с сборкой нескольких проектов он будет использовать ссылки на проекты по умолчанию на уровне Eclipse (т. Е. A и B зависят от скомпилированных классов C, а не от C JAR). И поскольку Maven и Eclipse используют одну и ту же папку target/classes
, чистая или компиляция на уровне Maven может запутать Eclipse. Он больше не видит скомпилированные классы и не будет компилировать их самостоятельно (потому что это изменение не произошло в Eclipse). В этом случае очистка или восстановление Eclipse (то есть на уровне Eclipse) должно решить проблему.
Я смотрю файл .classpath и определенно просматриваю нужные модули в рабочей области Eclipse.
Да, это не проблема. Проблема возникает из-за того, что Eclipse и Maven используют одну и ту же папку для классов компиляции.
Если я удалю репозиторий maven и снова затмлю затмение, ошибки компиляции относительно неразрешенных классов будут исправлены.
Вам действительно не нужно это делать, и я не понимаю, что такое репозиторий maven, если вы используете ссылки на проекты. Выполнение очистки и/или восстановления всех проектов под Eclipse должно устранить проблему.
Кроме того, если я запускаю чистую команду eclpse с флагом useProjectReferences к ложным, а затем снова запустить его с истинным, Eclipse будет восстанавливать свое рабочее место и ошибки исчезнут.
Вы используете ссылки на проект или нет? Опять же, в следующий раз, возможно, вы получите свою конфигурацию плагина в своем вопросе, это может помочь. Во всяком случае, вам не нужно касаться этого между сборками. Решите, хотите ли вы использовать ссылки на проекты (я думаю, что это более удобно, без них вам понадобится mvn install
C, чтобы сделать изменения доступными для A и B) и придерживаться этой конфигурации. После сборки mvn
восстановление рабочей области Eclipse должно быть достаточно.
PS: Обратите внимание, что вы можете настроить плагин maven eclipse для использования пользовательского buildOutputDirectory
, например target/eclipse-classes
, но у этого есть другие недостатки (я этого не делал).