Для сборки maven, которая зависит от компонента внутренней разработки, часто обновляемого в Artifactory, я изо всех сил пытаюсь понять решение для того, что должно быть обычным вариантом использования.
Внутренний артефакт, от которого я зависим, создается много раз в день, но не с шаблоном -SNAPSHOT. Вместо этого что-то вроде этого: 1.0.buildNumber.
Из этих различных сборок для этого артефакта, опубликованных в Artifactory (~ 100 в день), некоторые соответствуют определенным критериям тестирования и отмечены настраиваемым свойством в artifactory, что означает, что они соответствуют этим критериям тестирования, давайте назовем это свойство «полностью протестировано». . Он определяется и аннотируется после первоначальной публикации артефакта, он просто «обновляет» артефакт, добавляя это свойство Artifactory.
У меня вопрос: как мне указать Maven на получение самого последнего «полностью протестированного» артефакта? Сегодня версия зависимости статически определяется как свойство внутри файла pom, а раздел зависимости использует эту переменную свойства для поля «версия» зависимости.
Есть громоздкие способы определить это с помощью API-интерфейсов Artifactory, которые можно использовать вне канала непосредственно перед сборкой, а затем я могу переопределить статически определенную версию, определенную в свойстве файла pom, с помощью -D в командной строке maven, но должен быть лучший способ.
Я сомневаюсь, что моя компания в ближайшее время изменит способ публикации артефактов, поэтому надеюсь, что это можно решить на стороне клиента.
Вы можете использовать диапазон версий, например <version>[1.0,)</version>
...
Возможно, вы могли бы попробовать использовать Параметры матрицы, чтобы указать "полностью протестированные" -артефакты только в разрешении (URL-адрес репозитория).
Ссылка: https://www.jfrog.com/confluence/display/RTF/Using+Properties+in+Deployment+and+Resolution
Я посмотрел на это, и хотя я понимаю, как эти атрибуты могут быть установлены в Artifactory для этих артефактов при развертывании, я не понимаю, какой собственный синтаксис Maven будет поддерживать для получения артефактов с этим ограничением в последующих сборках. Это та часть, которой, кажется, не хватает.
Я не знаю, как это сделать. Я видел, как люди делали печально известную зависимость «-Последняя», что достаточно ужасно. Этот атрибут кажется еще одним гигантским скачком в области запутывания. Я чувствую твою боль! Чаще всего люди, принимающие такие решения, слишком глупы, чтобы знать, что они используют все инструменты неправильно.