Я использую Maven 2.2 с Nexus 1.4.0
Допустим, у меня есть такая pom-структура (с соответствующими версиями)
parentproj, v1.0.1
- childproj1, v1.0.2
- childproj2, v1.0.7
childproj1 и childproj2 представляют разные части приложения (например, gui и backend), и я хочу иметь возможность хранить их версии отдельно, чтобы я мог выпускать новую версию backend, не выпуская новую версию gui .
Теперь, чтобы развернуть эту структуру в Nexus, было бы удобно перейти к parentproj и сказать
mvn deploy -DperformRelease = true
, который развернет все артефакты в хранилище Nexus Realease. Это работает нормально при первом развертывании, но во второй раз я сталкиваюсь с проблемами: допустим, я сделал обновление для childproj1, так что теперь у нас есть следующие версии:
parentproj, v1.0.1
- childproj1, v1.0.3
- childproj2, v1.0.7
В этой ситуации Nexus не позволит мне выполнить mvn deploy из parentproj, поскольку в версии 1.0.7 у него уже есть копия childproj2. Nexus скажет: «Ресурс, недопустимый запрос: хранилище с идентификатором =« Releases »не позволяет обновлять артефакты». Это нормально, я не хочу обновлять существующие версии по ошибке.
Но я думаю, что я хотел бы сказать maven что-то вроде «развернуть только те артефакты, у которых есть версии, которых еще нет в репозитории релизов».
Есть ли способ сделать это, или мне придется развертывать каждый проект отдельно?