Как Maven может получить зависимость от Artifactory, отвечающую определенным критериям?

Для сборки maven, которая зависит от компонента внутренней разработки, часто обновляемого в Artifactory, я изо всех сил пытаюсь понять решение для того, что должно быть обычным вариантом использования.

Внутренний артефакт, от которого я зависим, создается много раз в день, но не с шаблоном -SNAPSHOT. Вместо этого что-то вроде этого: 1.0.buildNumber.

Из этих различных сборок для этого артефакта, опубликованных в Artifactory (~ 100 в день), некоторые соответствуют определенным критериям тестирования и отмечены настраиваемым свойством в artifactory, что означает, что они соответствуют этим критериям тестирования, давайте назовем это свойство «полностью протестировано». . Он определяется и аннотируется после первоначальной публикации артефакта, он просто «обновляет» артефакт, добавляя это свойство Artifactory.

У меня вопрос: как мне указать Maven на получение самого последнего «полностью протестированного» артефакта? Сегодня версия зависимости статически определяется как свойство внутри файла pom, а раздел зависимости использует эту переменную свойства для поля «версия» зависимости.

Есть громоздкие способы определить это с помощью API-интерфейсов Artifactory, которые можно использовать вне канала непосредственно перед сборкой, а затем я могу переопределить статически определенную версию, определенную в свойстве файла pom, с помощью -D в командной строке maven, но должен быть лучший способ.

Я сомневаюсь, что моя компания в ближайшее время изменит способ публикации артефактов, поэтому надеюсь, что это можно решить на стороне клиента.

Я не знаю, как это сделать. Я видел, как люди делали печально известную зависимость «-Последняя», что достаточно ужасно. Этот атрибут кажется еще одним гигантским скачком в области запутывания. Я чувствую твою боль! Чаще всего люди, принимающие такие решения, слишком глупы, чтобы знать, что они используют все инструменты неправильно.

Terry 29.10.2018 17:07

Вы можете использовать диапазон версий, например <version>[1.0,)</version> ...

khmarbaise 30.10.2018 08:28
Не удалось выполнить цель org.apache.maven.plugins
Не удалось выполнить цель org.apache.maven.plugins
Опишу, что когда я только начинал изучать Maven, у меня не получалось компилировать и упаковывать.
Blibli Automation Journey - Как захватить сетевой трафик с помощью утилиты HAR в Selenium 4
Blibli Automation Journey - Как захватить сетевой трафик с помощью утилиты HAR в Selenium 4
Если вы являетесь веб-разработчиком или тестировщиком, вы можете быть знакомы с Selenium, популярным инструментом для автоматизации работы...
0
2
36
1

Ответы 1

Возможно, вы могли бы попробовать использовать Параметры матрицы, чтобы указать "полностью протестированные" -артефакты только в разрешении (URL-адрес репозитория).

Ссылка: https://www.jfrog.com/confluence/display/RTF/Using+Properties+in+Deployment+and+Resolution

Я посмотрел на это, и хотя я понимаю, как эти атрибуты могут быть установлены в Artifactory для этих артефактов при развертывании, я не понимаю, какой собственный синтаксис Maven будет поддерживать для получения артефактов с этим ограничением в последующих сборках. Это та часть, которой, кажется, не хватает.

borisivan 02.11.2018 17:36

Другие вопросы по теме