用于解析XML并运行XPath for CI / CD的命令行工具

时间:2018-06-28 12:54:17

标签: maven continuous-integration continuous-deployment

对于运行在CD中的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?如果这种东西不存在,我可能会考虑创建一个

我之所以问是因为我很惊讶构建中需要多久使用此功能,而在流行的解决方案中却找不到多少

1 个答案:

答案 0 :(得分:1)

首先,您应该配置为使用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中找到。