Это не программирование вопрос по а вопрос доставки трубопровода:Управление несколькими Maven артефактов в трубопроводе подачи
Наш продукт построен из нескольких Maven артефактов, которые высвобождают снимкам (2.0.1-Snapshot) на ежедневной основы и версии выпуска (2.0.1) на еженедельной основе. Во время разработки наши артефакты полностью протестированы с моментальными снимками других артефактов, и все работает хорошо. Во многих случаях артефакты развиваются одновременно и поэтому зависят от друг друга без обратной совместимости.
Последний этап конвейера проверяет кандидат на выпуск определенного артефакта с версиями релиза других артефактов, поэтому я пытаюсь релиз 2.0.1 артефакта A, который был протестирован с 2.3.5-SNAPSHOT артефакта B и передан. Если он проходит, то артефакт A получает высвобождение (2.0.1-SNAPSHOT становится 2.0.1)
Здесь идет тупик, потому что артефакт B еще не выпустил 2.3.5 (это будет через несколько часов). Таким образом, очевидно, что артефакт A потерпит неудачу на этом этапе, потому что он тестируется против 2.3.4 артефакта B (который является последним выпуском B).
Предположим, что все артефакты имеют один и тот же трубопровод.
Просто, чтобы подвести итог: Artifact A is at 2.0.1-SNAPSHOT attempting to release 2.0.1, its latest release is 2.0.0 Artifact B is at 2.5.2-SNAPSHOT attempting to release 2.5.2, its latest release is 2.5.1
stage 0 test -> A 2.0.0 with B 2.5.1 - PASSED
stage 1 test -> A 2.0.1-SNAPSHOT with B 2.5.2-SNAPSHOT - PASSED
stage 2 test -> A 2.0.1-SNAPSHOT with B 2.5.1- FAILED
Я понимаю, что она будет продолжать терпеть неудачу до освобождения B 2.5.2, но как я учтите это в моем трубопроводе доставки. Я хочу, чтобы артефакт A мог выпускать еженедельно.
Что я ищу, это исправление этой дыры в моем конвейере доставки. Нужен ли мне еще один этап в конвейере? выпустить еще один SNAPSHOT из собранных снимков?
Вы используете диапазоны версий? '[2.5.2-SNAPSHOT, 2.5.2]' может работать, если вы будете осторожны с обратной совместимостью. Возможно, вам придется создать свой собственный редактор. Я не уверен, что maven считает, что 2.5.2-SNAPSHOT будет до 2.5.2 ... –
Я мог бы использовать диапазоны, и это * будет * держать мою строчку зеленой, но я все равно хотел бы знать, когда моя сборка используя SNAPSHOT и когда он начал использовать версию выпуска, поэтому в основном, когда B выпустил. – orepor