Jenkins устанавливает последний созданный артефакт в локальный репозиторий Maven, даже если задание выполняется с целью только clean package
.
. Это вызвало проблему, когда кто-то случайно зафиксировал обновленную версию.общей библиотеки без увеличения номера версии в POM библиотеки.Дженкинс построил jar, установил его в локальный репозиторий Maven, а затем (в соответствии с настройкой) развернул артефакт в нашем общем репозитории Nexus.Nexus совершенно справедливо отказывается принять новый артефакт, поскольку у него уже есть выпуск с заданным номером версии.
Через некоторое время Jenkins создает проект, который зависит от этой библиотеки, и использует копию библиотеки из своей библиотеки. локальный Репозиторий Maven, а не Nexus.Таким образом, проект был создан с неверной версией кода.
Кажется, есть два возможных решения:
- Остановить Jenkins от ошибочной установки .jar в локальный репозиторий
- Запретить использование локального репозитория при создании проектов, зависящих от библиотеки