我们在azure pipline中有一个现有的Java应用程序,我们正在尝试使用它在其中添加变量。我主要具有Java背景,并且对于ADO和azure管道来说还很新。我已经阅读过有关天蓝色管道变量的文档,但是看不到如何在Java应用程序中获取这些变量。文档说这些变量可以用作任务的输入,也可以通过环境变量提供给脚本。
这个项目是一个maven项目;第一个任务是maven'全新安装',因此有一种方法可以将ADO管道变量注入到maven构建中,然后以某种方式使maven将其转换为系统属性或环境变量,程序可以通过System.getPropert( )或System.genenv()?
答案 0 :(得分:1)
执行管道时,Azure会将所有管道变量放入环境变量中,以便您在构建过程中运行的任何工具,脚本,任务或过程都可以通过环境访问参数。
您可以在管道YAML定义或DevOps管道GUI中定义变量。
要将变量用作任务的输入,请将其包装在$()
中。使用这些环境变量的语法取决于脚本语言。名称为大写,.
替换为_
,并自动插入到流程环境中。此文档part中对此进行了说明。
此blog可以为您提供帮助,请参考它。
答案 1 :(得分:0)
您可以添加 bash任务,以将管道变量公开为当前Shell的环境变量。请参考以下示例。
我用下面的Java代码创建一个Java Maven测试项目。我测试并发现以下代码无法访问我在管道变量中定义的变量。
解决方法是添加 bash任务以在代理上设置环境变量。对于下面的示例。
export MyTestVariable="$(MyTestVariable)"
export TestProperty="$(TestProperty)"
上面的脚本公开了当前shell的两个env变量。 Youc可以参考this thread
然后从bash命令运行mvn命令。下面是我的完整脚本。
然后从测试输出日志中。可以使用方法System.genenv()
从Java项目访问该变量。