我有一个经典的构建管道
我在变量选项卡中定义了一个非秘密变量(var1)和一个秘密变量(var2)
我有运行我的java应用程序的maven任务
我尝试通过 getenv、getProperty 和 ProcessBuilder 方法访问变量的值。
getenv 和 getProperty 对于 var1 和 var2 都返回 null
ProcessBuilder 方法返回 var1 的值,但 var2 仍然为 null
有没有办法访问java应用程序内部秘密变量的值?
谢谢你。
DevOps 变量将自动映射为代理中的环境变量除了秘密变量。 您需要显式映射秘密变量(文档此处)。
除了 ProcessBuilder 方法之外,您还可以使用
System.getenv("VAR")
来获取 normal
变量值。要获取 secret
变量值,您可以使用另一个 non-secret
变量来映射此 secret variable
。详情如下:
Var1
是非秘密变量,Var2
是我构建中的秘密变量:
在我的管道中,我使用另一个变量
Var3
来映射Var2
:
echo "##vso[task.setvariable variable=Var3;issecret=false]$(Var2)
我的java代码:
管道结果,
Var1
可以输出,Var2
值显示为星号,是正确的。