当前位置: 首页 > 面试题库 >

从Jenkins的Maven POM获取项目版本

许曦
2023-03-14
问题内容

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

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

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


问题答案:

经过大量的挖掘(我从未意识到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标记等。



 类似资料:
  • 当存在依赖关系时,在ivy.xml中定义,例如: 在构建中.xml,我让常春藤检索它。然后,它会下载一个名称中包含版本 ID 的文件。例如,库/我的包-6.0.0.zip 我如何知道版本(6.0.0)或我的ANT构建中的全名,而不用手动/去重复ivy.xml中的版本? 我希望能够做这样的事情:

  • 问题内容: 如何从JavaFX中的中获取所选项目? 我目前正在使用 但这并没有给我返回选择模型中的一个选择项。 问题答案: 好的,假设您有一个名为的数据模型类。这条路: 请注意,必须使用a 作为类型参数以避免转换: 要么 选择行后,您将返回一个实例。然后对该实例执行任何您想要的操作。

  • AEM多模块项目具有。我们可以在那个级别更改版本,新的构建将显示具有更新版本的工件。 对于版本,将为每个版本创建一个新的AEM包。我们希望在安装新版本之前卸载/删除旧包。 问题是,如何在CI-CD作业中处理旧软件包的卸载/删除部分(要安装的新软件包版本不同)?我们可以考虑以下解决方案 查询软件包列表以获取版本并使用该版本卸载。 在"用参数构建"中将版本作为参数传递给Jenkins作业。但是代码签入

  • 问题内容: 我希望能够将iOS项目/应用程序的当前版本作为对象,而不必在文件中的某个位置定义常量。我不想在2个地方更改版本值。 当我在“项目”目标摘要中更改版本时,需要更新该值。 问题答案: 您可以获取版本和内部版本号,如下所示: 或在Objective-C中 我在以下类别中具有以下方法: 要点: https : //gist.github.com/ashleymills/6ec9fce6d7ec

  • 我对jenkins的带有声纳的ant项目的配置有问题。要在Jenkins建立带有声纳的ant项目,需要指示属性:sonar.project版本、sonar.project名称、sonar.project密钥、sonar.binaries、sonar.libraries和sonar.sources.我想知道是否可以在文件build.xml或build.properties中建立项目版本和项目名称,并

  • Project的构建没有任何错误,但是当我进入exploper并查找文件夹时,它没有生成。我尝试清理和构建,无效缓存和重新启动,但它不起作用。如何获取r.java文件? 这是构建日志 我在下面提到了这样的线程,并尝试了一切,但没有任何工作。 这个有什么已知的bug吗?