Инструмент командной строки для анализа XML и запуска XPath для CI/CD

Для проектов Maven, работающих на CD, нам часто нужно ссылаться на текущую версию проекта (я думаю, что это довольно универсальная проблема для всех, кто делает сборки Java)

Например, может потребоваться найти шаблон артефакта на основе версии или скопировать артефакт в корзину S3, названную в честь текущей версии, объявленной в POM.

Тем не менее, мне было невероятно трудно получить данные из POM. Лучшее, что я мог найти, было:

mvn org.apache.maven.plugins:maven-help-plugin:2.1.1:evaluate -Dexpression=project.version | grep -Ev '(^\[|Download)' > target/version.txt

что кажется хакерским...

есть ли утилита командной строки linux, доступная через менеджер пакетов, который может просто проанализировать файл XML и запустить XPath? Если такой вещи не существует, я мог бы рассмотреть возможность создания

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

1 ответ

Решение

Сначала вы должны сконфигурировать использование maven-help-plugin версии 3.1.0, а затем получить такую ​​версию:

RESULT=$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout)
echo $RESULT

Или вы также можете пойти явным путем:

RESULT=$(mvn org.apache.maven.plugins:maven-help-plugin:3.1.0:evaluate -Dexpression=project.version -q -DforceStdout)
echo $RESULT

Более подробную информацию можно найти в моем блоге.

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