maven - 如何在命令行中获取Maven groupId,artifactId和项目版本

标签 maven command-line

我想从命令行检索groupId,artifactId和Maven项目的版本。

本主题“ How to get Maven project version to the bash command line”中建议的解决方案是使用以下插件:

mvn org.apache.maven.plugins:maven-help-plugin:2.2:evaluate -Dexpression=project.artifactId

它运作良好,但我无法弄清楚如何同时将project.groupId, project.artifactId & project.version设置为-Dexpression参数。

我会避免每次使用不同的-Dexpression参数启动3次Maven命令...

谢谢


目前,我通过执行以下操作检索数据:

local pom_groupid=`mvn org.apache.maven.plugins:maven-help-plugin:2.2:evaluate -Dexpression=project.groupId |grep -Ev '(^\[|Download\w+:)'`
local pom_artifactid=`mvn org.apache.maven.plugins:maven-help-plugin:2.2:evaluate -Dexpression=project.artifactId |grep -Ev '(^\[|Download\w+:)'`
local pom_version=`mvn org.apache.maven.plugins:maven-help-plugin:2.2:evaluate -Dexpression=project.version |grep -Ev '(^\[|Download\w+:)'`

最佳答案

这是另一种不需要创建Maven插件的方法,即使Olivier已经证明制作它很容易。


mvn -q -Dexec.executable = echo -Dexec.args ='$ {project.groupId} $ {project.artifactId} $ {project.version}'-非递归exec:exec 2> / dev / null


请注意,这是针对linux环境量身定制的。在Windows上,您可能会创建一个打印其输入内容或其他内容的批处理文件。

这种方法的一个缺点是您可能必须在上述命令的末尾(在| grep -v "something"之后)添加2>/dev/null,以过滤掉一些maven打印到stdout的文本。在我的情况下,只有一行要过滤的文字只会出现在我的公司中。

归功于到期日:我从this other StackOverflow thread修改了此信息。

关于maven - 如何在命令行中获取Maven groupId,artifactId和项目版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23521889/

相关文章:

windows - 从CMD在桌面上创建计算机(Windows XP中的我的电脑)快捷方式?

linux - 通过 Linux 命令行提取 file_name.zip.001

c++ - GNU MAKE - 从我自己的 Makefile 创建 getoptpp 库或为 c++ 建议命令行选项库

git - 如何获取Git命令的运行时间?

maven - 如何在 pom.xml 中定义条件属性?

java - 如何为JSF配置web.xml、glassfish-web.xml文件?

java - 如何在 Eclipse 中运行单个测试包及其子包?

linux - 为什么我们需要执行权限,尽管我们可以使用 "bash script file"运行任何脚本而不需要它?

java - Maven 从中央存储库下载

java - Maven 版本 :perform overwriting first ever release for every subsequent release