Развертывание Maven ssh переопределяет артефакты в нексусе. Можно ли это предотвратить?

мы используем плагины Maven Wagon SSH и Wagon SSH External для развертывания в нашем репозитории nexus. Таким образом, артефакты в нексусе могут быть переопределены.

Есть ли способ предотвратить это на стороне maven? Или надо менять либо вагон, либо права файловой системы на артефакты?


person BlackEye    schedule 19.05.2015    source источник
comment
Почему вы используете SSH? Я предполагаю, что вы используете ssh на уровне файловой системы на вашем Nexus. SSH — это не способ загрузки артефактов в Nexus. Используйте http (s) по умолчанию для загрузки артефактов, и вы можете управлять перезаписью существующих артефактов (релизов), в частности.   -  person khmarbaise    schedule 19.05.2015


Ответы (1)


Я бы посоветовал вам использовать команду deploy или использовать maven-release-plugin. С помощью плагина вы можете prepare преобразовать pom.xml в следующую версию, и он зафиксирует эти изменения в вашем контроле версий (git, svn). Затем вы можете запустить команду perform, чтобы собрать подготовленную версию и развернуть ее в нексусе.

Дело в том, что вы можете повторно deploy свою рабочую версию моментального снимка (оканчивающуюся на -SNAPSHOT) сколько угодно раз. Но вы можете deploy версию БЕЗ снапшота только один раз. Это гарантирует, что релизная версия не будет переопределена таким образом!

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

person Milan Baran    schedule 19.05.2015
comment
Под командой развертывания вы имеете в виду плагин развертывания? Разве развертывание через плагин maven-release-plugin также не будет использовать плагин развертывания maven? - person BlackEye; 19.05.2015
comment
Да, я имел в виду стандартную команду развертывания, которая, вероятно, предоставляется maven-deploy-plugin. Да, действие perform будет использовать команду deploy из другого плагина. По сути, плагин выпуска управляет версиями вашего pom.xml, когда у вас есть более крупные проекты подмодулей, становится сложнее поддерживать его вручную. - person Milan Baran; 19.05.2015
comment
Затем плагин развертывания использует maven wagon. Так что на самом деле мы используем deploy-plugin. Проблема в том, что вы МОЖЕТЕ развертывать версию БЕЗ моментального снимка так часто, как хотите. - person BlackEye; 19.05.2015
comment
Я не думаю, что это отвечает на первоначальный вопрос об ограничении повторного развертывания при использовании ssh для развертывания maven. Я также сталкиваюсь с той же проблемой, когда ssh также может повторно развертывать выпускные версии, и это сопряжено со значительным риском. - person Arnab; 11.12.2020