对于在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?如果这样的东西不存在,我可以考虑创建一个。
我之所以问这个问题,是因为我感到惊讶的是,这个特性在构建中需要的频率有多高,而在流行的解决方案方面,我所能找到的却那么少。
发布于 2018-06-28 05:41:37
首先,您应该配置为使用maven-帮助插件版本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
更多细节可以在我的博客中找到。
https://stackoverflow.com/questions/51083475
复制相似问题