如何将settings.xml文件添加到azure变量?

问题描述 投票:0回答:1

我正在 Azure DevOps 中处理 Maven 任务,我需要引用 settings.xml 文件。我之前将 settings.xml 添加为库中的变量,但由于我锁定了该变量,它已成为一个秘密,我无法再访问它。

如何将 settings.xml 作为变量添加回另一个管道的库,并在下面的 Maven 任务中使用它?

  - task: Maven@4
displayName: maven package
inputs:
  mavenPomFile: 'pom.xml'
  goals: 'clean install spring-boot:repackage'
  options: '-Dmaven.test.skip=true -U'
  publishJUnitResults: false
  javaHomeOption: 'JDKVersion'
  jdkVersionOption: '1.17'
  mavenVersionOption: 'Default'
  mavenAuthenticateFeed: true
  effectivePomSkip: true
  sonarQubeRunAnalysis: $(isStage)
  sqMavenPluginVersionChoice: 'latest'
  settingsXml: $(MAVEN_SETTINGS_XML)
maven azure-devops
1个回答
0
投票

由于该变量是Azure Pipeline中的秘密变量,因此无法直接在管道中显示。

如果您在Library -> Variable Groups中定义变量,则可以直接在另一个Pipeline中使用该变量组。请参阅此文档:将变量组链接到管道

例如:

variables:
- group: vargroup

steps:
- task: Maven@4
  displayName: maven package
  inputs:
    mavenPomFile: 'pom.xml'
    goals: 'clean install spring-boot:repackage'
    options: '-Dmaven.test.skip=true -U'
    publishJUnitResults: false
    javaHomeOption: 'JDKVersion'
    jdkVersionOption: '1.17'
    mavenVersionOption: 'Default'
    mavenAuthenticateFeed: true
    effectivePomSkip: true
    sonarQubeRunAnalysis: $(isStage)
    sqMavenPluginVersionChoice: 'latest'
    settingsXml: $(MAVEN_SETTINGS_XML)

另一方面,如果需要获取秘密变量的值,可以通过输出到文件来显示具体值。

这是一个示例:您可以添加 PowerShell 任务将值输出到 txt 文件,然后您可以使用 Publish Build Artifacts 任务在 Pipeline 中发布该文件。

variables:
- group: vargroup

steps:
- powershell: |
    $env:MAPVALUE | Out-File $(System.DefaultWorkingDirectory)\settings.txt

  env:
    MAPVALUE: $(varname)
- task: PublishBuildArtifacts@1
  inputs:
    PathtoPublish: '$(System.DefaultWorkingDirectory)\settings.txt'
    ArtifactName: 'settingsfile'
    publishLocation: 'Container'

然后您可以在 Pipeline 工件中获取秘密变量值。

例如:

enter image description here

在这种情况下,您还可以手动将具有实际值的 Pipeline 变量添加到另一个 Pipeline 中。

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