小编典典

从Jenkins的Maven POM获取项目版本

jenkins

在处理POM之后,Jenkins构建有什么方法可以知道项目的Maven版本号吗?

我有一些项目由Maven控制版本控制,在构建后的工作中,我们想创建一个Debian软件包并调用一些shell脚本。我需要的是Maven以前可以用作Jenkins环境变量的版本号,因此我可以将其传递给构建后操作。

需要明确的是,我 没有 需要知道如何让詹金斯版本号传递到Maven的; 相反,我希望Maven将版本号传递给Jenkins!


阅读 1348

收藏
2020-07-25

共1个答案

小编典典

经过大量的挖掘(我从未意识到Jenkins的文档记录多么糟糕!),我找到了一个非常简单的解决方案。

  1. 安装Groovy插件
  2. 将A添加Post Step到您的Maven构建类型Execute **system** Groovy script
  3. 粘贴以下Groovy片段:

脚本:

import hudson.model.*;
import hudson.util.*;

def thr = Thread.currentThread();
def currentBuild = thr?.executable;
def mavenVer = currentBuild.getParent().getModules().toArray()[0].getVersion();
def newParamAction = new hudson.model.ParametersAction(new hudson.model.StringParameterValue("MAVEN_VERSION", mavenVer));
currentBuild.addAction(newParamAction);

MAVEN_VERSION现在可以使用通常的方式(${MAVEN_VERSION})将称为的构建环境变量替换为其他构建后步骤。我正在将它用于Git标记等。

2020-07-25