maven - 如何获取/获取 Jenkins 管道中设置的环境变量到我们的 maven pom.xml
问题描述
我有几个使用 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 容器(这也将在内部运行测试)。
问题:我的 Jenkins 作业可以根据用户对特定 testng.xml 文件的选择来触发,如下所示:
触发一次时,它工作正常,但如果我们在不清理工作区的情况下第二次触发,那么它会抛出类似的错误
我假设这可能是权限问题,因为我正在安装卷以将容器测试输出目录与 Jenkins 主机-VM 目录映射
如何在我的 POM 中获取环境变量?
解决方案
将这些值定义为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}
推荐阅读
- php - Laravel 5.7 Apache 2.4 php 7.2 未定义的类常量'SQLSRV_ATTR_FETCHES_NUMERIC_TYPE'
- python - 数组的嵌套列表理解是否相同?
- c# - UWP 棱镜 UWP 视图模型
- c# - 无法将“System.Linq.Expressions.MethodCallExpression”类型的对象转换为“System.Linq.Expressions.LambdaExpression”类型
- android - 如何为 Android HttpURLConnection 实现 getResponseMessage() / getResponseCode
- amazon-web-services - 从 redshift 中的宽表中选择任何列上的 where 子句
- javascript - 为什么 props.notes.map 不是函数?React 和 Firebase
- robot - 如何编程线跟踪和 vex 爪机器人在 RobotC 上自动拾取管道?
- c# - 视图中的增量未显示更新的值仅显示初始化值 asp.net mvc
- c# - 在包含外键的表中插入数据