Дженкинс отключить или очистить кэш для сборок 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, вы можете столкнуться с проблемой.