通过 Azure DevOps 中的 Java 应用程序访问经典管道中的秘密变量

问题描述 投票:0回答:1
  1. 我有一个经典的构建管道

  2. 我在变量选项卡中定义了一个非秘密变量(var1)和一个秘密变量(var2)

  3. 我有运行我的java应用程序的maven任务

  4. 我尝试通过 getenv、getProperty 和 ProcessBuilder 方法访问变量的值。

  5. getenv 和 getProperty 对于 var1 和 var2 都返回 null

  6. ProcessBuilder 方法返回 var1 的值,但 var2 仍然为 null

有没有办法访问java应用程序内部秘密变量的值?

谢谢你。

java maven variables azure-devops azure-pipelines
1个回答
0
投票

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
值显示为星号,是正确的。

© www.soinside.com 2019 - 2024. All rights reserved.