为 CI/CD 解析 XML 和 运行 XPath 的命令行工具

Command line tool to parse XML and run an XPath for CI/CD

对于在 CD 中 运行ning 的 Maven 项目,我们经常需要引用项目的当前版本(我想这对于任何进行 Java 构建的人来说都是一个普遍的问题)

例如,可能需要根据版本查找工件模式或将工件复制到以 POM 中声明的当前版本命名的 S3 存储桶

但是,我发现从 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?如果没有这样的东西,我可能会考虑创建一个

我问这个问题是因为令我惊讶的是构建中需要此功能的频率如此之高,而我能找到的流行解决方案却如此之少

首先你应该配置使用 maven-help-plugin version 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

可以在 my blog 中找到更多详细信息。