Создание герметичных конструкций Maven

Я пытаюсь создать способ, с помощью которого можно получить герметичные сборки, все еще полагаясь на зависимости SNAPSHOT в вашем проекте.

Например, скажем, у меня есть проект с такой структурой зависимостей:

             ┌ other-1.2-SNAPSHOT
mine-1.2.3 ──┤
             └ thing-3.1-SNAPSHOT ── gizmo-6.1.3-SNAPSHOT

То, что я хотел бы сделать, это разрешить все зависимости SNAPSHOT локально во что-то, что связано с моей текущей версией, а затем развернуть их как релизы в репозитории моего Nexus. Не все эти зависимости являются внутренними, поэтому я не могу просто сделать релиз по каждой.

Итак, в этом примереother-1.2-SNAPSHOT станет чем-то вродеother-1.2-mine-1.2.3 а такжеthing-3.1-SNAPSHOT станетthing-3.1-mine-1.2.3, Это относительно тривиально примерно в 60 строках Python.

Проблема, однако, заключается в разрешении переходных SNAPSHOT к конкретным версиям. Так что мне тоже нужно конвертироватьgizmo-6.1.3-SNAPSHOT вgizmo-6.1.3-mine.1.2.3 и имеютthing-3.1-mine-1.2.3 зависит от этого.

Это всего лишь пример того, как добиться того, чего я хочу. Цель состоит в том, чтобы через год или два в будущем я мог проверить свою ветку релиза для версии 1.2.3 и иметь возможность запуститьmvn clean package или тому подобное, не беспокоясь о разрешении давно ушедших зависимостей SNAPSHOT.

Важно, чтобы эта ветка была компилируемой, а не просто сохраняла все зависимости, используя что-то вродеjar-and-dependencies Функциональность сборки плагина. Я хотел бы иметь возможность изменить исходные файлы и сделать другую сборку релиза (например, применяя исправление).

Так,

Есть ли что-то подобное, что сможет рекурсивно преобразовывать зависимости SNAPSHOT в конкретные?Существуют ли плагины, которые управляют подобными вещами для вас? Плагин релиза обещал с некоторыми опциями конфигурацииbranch цель, но она не разрешает внешние проблемы в той степени, в которой я хочу.Доступны ли другие методы для создания герметичных сборок Maven?

Ответы на вопрос(2)

Ваш ответ на вопрос