Автоматический проект Maven меняет разрешение с Eclipse - PullRequest
4 голосов
/ 04 октября 2011

Проблема: у нас есть десятки подпроектов Maven (управляемых m2eclipse) в нашем трехуровневом дереве POM, и люди продолжают добавлять и удалять некоторые из них раз в две недели. Проблема дополнительно осложняется тем фактом, что не все вновь добавленные проекты приводят к ошибке времени компиляции, когда они отсутствуют. Это может привести к тому, что они не будут помещены в контейнер OSGi, поскольку люди забывают правильно импортировать их, а Eclipse по какой-то причине не знает об их существовании автоматически.

В настоящее время людям приходится просматривать какой-либо список рассылки, и всякий раз, когда происходит такое событие, они должны идти и либо вручную вызывать мастер импорта для самого корневого POM и добавлять отсутствующие проекты, либо вручную удалять некоторые из ненужных. Перемещение / переименование - это комбинация удаления / добавления.

Это все очень подвержено ошибкам, и мы хотели бы как-то автоматизировать / упростить процесс.

В идеале мы хотели бы иметь следующий рабочий процесс: 1) синхронизация 2) Огненное Затмение 3) Некоторый хук для запуска, который будет анализировать рабочее пространство разработчика относительно последнего дерева POM (само корневое POM является фиксированным и известным) 4) Где-то должна быть кнопка, которая будет: - зеленый, если все в порядке - красный, если нет Нажатие на него должно автоматически удалить ненужные проекты (и обновить внутренние компоненты Eclipse) и добавить новые (своего рода мастер импорта в режиме без вывода сообщений).

Возможно ли это с существующим функционалом? Или мы должны были бы как-то расширить m2e? Любые другие решения ???

Любая помощь будет принята с благодарностью!

приписка

Мы знаем, что проблема такого типа, вероятно, связана с плохо разработанной структурой проекта. Тем не менее, это не так легко исправить, работая в тесных циклах выпуска. Итак, нам нужно временное решение.

1 Ответ

1 голос
/ 08 февраля 2012

Мне кажется, что вы решаете не ту проблему.Я сомневаюсь, что что-то подобное будет поддерживаться из коробки в m2e - если только однажды не станет лучшей практикой помещать каждый тип в его собственный модуль.Через некоторое время модули проекта должны стабилизироваться и отражать архитектуру, которая может меняться, но не часто (только основные версии).Если он меняется слишком часто, то при проектировании принимается недостаточно внимания.Рассмотрите возможность разделения проектов на несколько подпроектов, которые можно извлекать / клонировать и работать независимо.

При синхронизации изменений просто проверяйте, были ли добавлены / удалены модули - и если да, то после синхронизации просто логически удалите и затем импортируйтеподдержать существующие проекты Maven.

...