对于运行在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?如果这种东西不存在,我可能会考虑创建一个
我之所以问是因为我很惊讶构建中需要多久使用此功能,而在流行的解决方案中却找不到多少
答案 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中找到。