如何 get/fetch 将 Jenkins 管道中设置的环境变量导入我们的 maven pom.xml

How to get/fetch the environment variables set in Jenkins pipeline into our maven pom.xml

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

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

如何在我的pom.xml中调用那些环境变量?

我尝试了 ${env.JENKINS_USER_NAME} 以及 %JENKINS_USER_NAME%,但似乎没有任何效果。

用例: 我将 运行 宁我的 Jenkins 管道作业来构建我的项目,最终将在 Stage 中创建一个 docker 图像- 1 然后 运行 Stage-2 中的 docker 容器(这将 运行 内部测试)。

问题: 我的 Jenkins 作业可以根据用户选择的特定 testng.xml 文件触发,如下所示:

触发一次时,它工作正常,但如果我们在不清理工作区的情况下触发第二次,则会抛出类似

的错误

我假设这可能是权限问题,因为我正在挂载卷以将容器测试输出目录映射到 Jenkins 主机-VM 目录

如何在 POM 中获取环境变量?

将值定义为 maven properties (with defaults),然后您可以在 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}