В моем рабочем процессе мне нужно часто переключать ветки git, но из-за этого я много раз сталкивался с ошибкой при загрузке проекта после извлечения ветки.
У меня есть несколько модулей зависимости от моего основного модуля, я думаю, что их отношение немного сложное, как:
mainModule -> A -> X(version 1.0)
mainModule -> B -> X(version 1.2)
mainModule -> X(version 1.8)
После того, как я извлечу ветку, я запускаю свой проект, если он работает, папка classes
в моей папке target
включает такое дерево папок, как:
classes
--com (java source code)
--config (config files)
--static (js code)
--templates (html page)
если он обнаруживает ошибки, каталог classes
содержит только исходный код Java, структура файла выглядит так:
classes
--com (java source code)
Как вы видите, три папки отсутствуют, тогда я получаю ошибки при загрузке проекта, потому что отсутствуют файлы конфигурации, в которых нуждается мой код.
В большинстве случаев мой проект может хорошо работать после удаления папок target
, принадлежащих mainModule / A / B / X. Но я не знаю, почему этот метод не работает сегодня.
Я думаю, что это не проблема maven, потому что я могу получить все файлы в WAR, упакованном вручную. Я решил эту проблему, изменив все зависимости X до версии 1.8 (самой новой), но мой коллега сказал мне, что он не хочет, чтобы все модули зависели от одной и той же версии, поскольку в большинстве случаев это не требуется.
Есть ли решения для решения этой проблемы в IntelliJ? Почему IntelliJ упаковывает неправильный WAR-файл?