如何将Jenkins pipeline中设置的环境变量获取到maven pom.xml中

ql3eal8s  于 2022-11-28  发布在  Jenkins
关注(0)|答案(1)|浏览(226)

我使用Jenkins管道设置了几个环境变量。

我想在我的maven pom.xml文件中获取这些环境变量的值,在这里我想将它们作为buildArgs传递给docker-maven-plugin,它将在一个dockerfile中再次被调用。

如何在我的pom.xml中调用这些环境变量?
我尝试了${env.JENKINS_USER_NAME}以及%JENKINS_USER_NAME%,但似乎都不起作用。

**用例:**我将运行Jenkins管道作业来构建我的项目,这最终将在Stage-1中创建一个Docker映像,然后在Stage-2中运行Docker容器(这也将在内部运行测试)。
**问题:**可以根据用户选择的特定testng.xml文件触发我的Jenkins作业,如下所示:

触发一次时,它工作正常,但如果我们第二次触发而不清理工作区,则会引发如下错误

我假设这可能是权限问题,因为我正在装载卷以将容器测试输出目录Map到Jenkins主机虚拟机目录
x1c4d 1x指令集
如何在POM中获取环境变量?

u91tlkcl

u91tlkcl1#

将这些值定义为maven属性(具有默认值),然后可以在maven命令行上使用从下拉列表中填充的Jenkins环境变量的属性覆盖这些值。

pom.xml文件:

<properties>
        <gid>default-gid</gid> 
        <uid>default-uid/<uid> 
        <uname>default-uname</uname> 
</properties>

<configuration>
    <buildArgs>
        <GID>${gid}</GID> 
        <UID>${uid}/<UID> 
        <UNAME>${uname}</UNAME> 
    </buildArgs> 
</configuration>

SH执行命令:

mvn -Dgid=my-gid -Duid=my-uid -Duname=my-uname clean system-test:latest ${TestSuiteFiles}

相关问题