Java 如何在Jenkins管道中获得maven版本

Java 如何在Jenkins管道中获得maven版本,java,maven,docker,jenkins,continuous-integration,Java,Maven,Docker,Jenkins,Continuous Integration,我正在与詹金斯一起创建CI管道。需要用项目的Maven版本标记docker图像,例如0.0.1-SNAPSHOT 尽管maven版本是基于公开的POM_版本,但它似乎只适用于“maven项目”。我尝试将管道的Jenkins文件中的变量用作${POM_VERSION},但它无法识别该属性 获取版本号的最佳方法是什么?解析pom.xml并使用bash脚本对版本进行grep,并在Jenkinsfile?内调用它。您可以使用Spotify docker maven插件使用项目版本标记docker图像,如

我正在与詹金斯一起创建CI管道。需要用项目的Maven版本标记docker图像,例如
0.0.1-SNAPSHOT

尽管maven版本是基于公开的
POM_版本
,但它似乎只适用于“maven项目”。我尝试将管道的Jenkins文件中的变量用作
${POM_VERSION}
,但它无法识别该属性


获取版本号的最佳方法是什么?解析pom.xml并使用bash脚本对版本进行grep,并在
Jenkinsfile

内调用它。您可以使用Spotify docker maven插件使用项目版本标记docker图像,如下所示:

<imageTags>
    <imageTag>${project.version}</imageTag>
    <imageTag>latest</imageTag>
</imageTags>

<imageName>${image.suffix}/${project.artifactId}:${project.version}</imageName> 

${project.version}
最新的
${image.suffix}/${project.artifactId}:${project.version}

您使用什么maven插件创建docker图像?@IssamEL ATIF Spotify您可以这样命名图像
${project.artifactId}:${project.version}
如何控制何时使用哪个标记?您的意思是如何控制在运行docker图像时使用哪个标记?imageTags块的用途是什么?为什么我们需要多个标签?请参阅docker标签文档