У меня есть проект
A/
|--a1
|--a2
Теперь в нашей организации есть еще один проект
B/
|--b1
|--b2
|--b3
(Каждый модуль a1, b1 и т. Д. И родительские проекты A, B имеют свои собственныеpom.xml в соответствии со стандартными maven-правилами для родителя и потомка)
Оба проекта проверены на моем локальном затмении (из SVN).Я активно работаю над A.
Я узнал, что в B есть хорошая общая функциональность (b4), и мне нужно было ее использовать.
B/
|--b1
|--b2
|--b3
|--b4 (NEW)
Разработчик b4 развернул этот модуль b4 как артефакт в репозитории нашей организации.Я включил зависимость в POM моего модуля, то есть в a2 pom.xml.Eclipse загрузил требуемый артефакт из репозитория, и я мог импортировать в него классы.
Теперь проблема начинается ... Мне нужно было проверить исходный код b4 для какой-то цели, и, как я уже проверил B на моемЛокальное затмение Я обновил его из SVN и проверил модуль b4.Я также запустил pom.xml модуля b4 с такими целями, как clean, package и т. Д. Через некоторое время, когда я закончил писать код, мне нужно было создать JAR-файл моего модуля a2.Я запустил «пакет» на p2.xml и BAM в a2!ошибки n ошибки для модуля a2. Эти ошибки также были не очень удобными для пользователя.Единственное, в журналах наверняка было имя b4.
Решение: После многих часов попыток я запустил «mvn -U clean install» из консоли в директории проекта моего B (т.е. в ../ кодовая / В).Поскольку B является родительским, команда clean install была запущена для всех модулей, включая b4, и она прошла успешно.После этого я запустил «mvn -U clean install» для моего родительского проекта, который называется A. И это сработало!Модуль a2 был скомпилирован, установлен, (упакован позже) успешно.
Здесь важным моментом было то, что если b4 находится в вашем рабочем пространстве, не только устанавливайте b4.Вам нужно будет выполнить чистую установку полной версии B. Я пришел к этому решению после прочтения ответа от Zuill
РЕДАКТИРОВАТЬ: Еще одна вещь здесь, чтобы отметить, что если я не сделалесли бы проект B был проверен в локальной среде, то эта проблема могла не возникнуть для меня.Я склонен думать, что это произошло, потому что я проверил B в моей локальной рабочей области.