У нас есть большой многомодульный проект Maven.Обычный стиль работы - проверить несколько модулей, которые вас интересуют, и для других модулей, от которых они зависят, использовать JAR-снимки, предоставленные Maven.
В большинстве случаев это работает;когда нам нужны обновленные снимки, мы просто принудительно повторно импортируем из вкладки «Проекты Maven».Однако повторно импортированные моментальные снимки, кажется, никогда не переиндексируются.
Шаги для воспроизведения:
- В одном проекте проверьте / настройте модуль, который зависит от снимка Maven другого модуля.
- В отдельном проекте внесите изменения в этот другой модуль, например, добавив метод, и разверните его в репозитории Maven.
- В первом проекте обновите снимок.
- В первом проекте напишите некоторый код, который вызывает новый метод.
Ожидается:
- Нет проблем при вызове нового метода.
Факт:
- Вызов метода помечен ошибкой «Не удается разрешить метод».Однако:
- Код компилируется (через меню «Сборка» или контекстное меню)
- Код выполняется, включая код, вызывающий новый метод
Есть ли способ обойти это?Было бы неплохо избавиться от красной черты, сделать автозаполнение и т. Д. Работать, и в целом иметь возможность продолжать использовать IDEA, как вы должны.
Возможно, актуально: у нас есть смесь разработчиков Eclipse и IDEA, и чтобы обойти некоторые ошибки интеграции Eclipse / Maven, мы установили для snapshot updatePolicy значение «never» в наших файлах pom.xml.Однако я ожидаю, что параметр IDEA (политика обновления моментальных снимков: всегда обновлять) будет переопределять это, если я не пойму неправильно, что делает параметр.
(«Никогда» может показаться нелогичным, но я думаю, что это правильно для разработчиков:обновлять зависимости вручную, так же как вы обновляете исходный код из VCS вручную. Для реальных сборок у нас есть Hudson, так или иначе, переопределяет настройки POM. И что еще более важно, установка его «никогда» не останавливает Eclipse от неистовых ненужных полных перекомпиляций.)