Пропуск модуля Maven, который уже был опубликован в Maven Central - PullRequest
3 голосов
/ 18 марта 2019

Допустим, у меня есть совокупный проект Maven. com.example:foo:1.0.0 является совокупным родительским POM и содержит дочерний проект com.example:bar:2.0.0. Я публикую их оба в Maven Central, используя nexus-staging-maven-plugin. Обратите внимание, что я не использую управление зависимостями в родительском POM для версии com.example:bar:2.0.0, даже если это дочерний проект. То есть две версии не связаны друг с другом.

Я также использую com.example:foo:1.0.0 в качестве родительского POM в других проектах, поэтому я бы предпочел, чтобы его координаты не менялись излишне (например, публиковаться несколько раз с разными координатами, даже если содержимое не изменилось).

Оказывается, com.example:bar:2.0.0 меняется довольно часто, поэтому я хочу выпустить com.example:bar:2.1.0. Но я буду строить из совокупного родительского POM в этом хранилище, com.example:foo:1.0.0. Должен ли я также увеличивать версию родительского POM, даже если родительский POM не изменился, и хотя версии никак не связаны друг с другом? Я бы предпочел, чтобы nexus-staging-maven-plugin просто понял, что com.example:foo:1.0.0 уже опубликован, пропустите его, продолжите и опубликуйте com.example:bar:2.1.0.

Этот вопрос также распространяется на одноуровневый модуль, который уже был опубликован. Есть ли способ настроить nexus-staging-maven-plugin, чтобы пропустить модуль, который уже был опубликован, и при этом продолжить сборку и публикацию других родственных проектов, которые еще не были опубликованы?

Из этого упрощенного примера я уверен, что у кого-то возникнет искушение ответить «но вы не должны делать это так». В моем более сложном примере есть причины, по которым было бы полезно сделать это, как я объясняю; и кроме того, этот ответ все равно оставит фактический вопрос без ответа.

Я также понимаю, что мог бы провести несколько тестов, чтобы увидеть, что произойдет, и, возможно, я это сделаю, но я задаю здесь вопрос: 1) получить достоверный ответ, 2) содействовать обсуждению вариантов и 3) оставить какой-то однозначный ответ здесь для тех, у кого такой же вопрос. Спасибо.

1 Ответ

0 голосов
/ 20 марта 2019

AFAIK, nexus-staging-maven-plugin не имеет пользовательского свойства для отсоединения или игнорирования определенных артефактов.

Вы можете написать свой собственный плагин, который берет проект Maven и удаляет из него определенный артефакт.

...