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