Дженкинс отключить или очистить кэш для сборок maven

наши проекты maven строятся на jenkins, а затем развертывают артефакты в репозитории maven.

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

скажем, есть ошибка в артефакте A и B зависит от A. Теперь я исправляю ошибку локально, обновляю свои зависимости в B, запускаю B, и все в порядке. Я регистрируюсь, очевидно. Теперь я строю на Дженкинсе и затем B. Я получаю недавно построенный B и запускаю его. Жучок все еще там. Через несколько часов, если я снова построю B, он любезно получит новый A, и ошибка исчезнет..

таким образом, должен быть способ заставить Дженкинса использовать новый A на своем сервере. используя mvn -u или mvn --update-snapshots не поможет. Он будет проверять наличие обновлений и не найдет ни одного..

1 ответов


Я считаю, что такое поведение кэширования невозможно в Maven / Jenkins, так как весь ваш снимок построен локально в том же экземпляре Jenkins. Нет необходимости в опции "обновить снимок", потому что вы не получаете его из удаленного РЕПО. Тем не менее, я бы рекомендовал вам взглянуть на настройку репозитория в Jenkins. В Jenkins мы можем изменить, какой репозиторий maven использовать (по умолчанию он используется всей машиной, но его можно изменить на рабочее пространство или на исполнителя и т. д. (В конфигурации проекта в Build -> Advanced, вы можете проверить для "Use private Maven repository", и Manage Jenkins -> Configure System -> Maven Project Configuration, вы можете выбрать способ управления Local Maven Repository. Я подозреваю, что вы изменили его на "Local to executor"

если у вас есть какие-либо настройки, которые вызывают сборку a, установленного в другом репозитории, который использует B, вы можете столкнуться с проблемой.