Вы можете получить путь maven из раздела возможностей размещенного агента, а затем создать переменную, используя Logging Commands .Затем вы можете использовать переменную в пакетном сценарии вместо вызова maven path.
Создайте сценарий PowerShell для установки переменных (см. Пример ниже, вы также можете использовать маркер OAuth дляполучите доступ к REST API ), затем зарегистрируйте сценарий в VSTS.
Добавьте задачу PowerShell в свое определение для запуска сценария PS
3. Пошагово используйте переменную, которая за заданной переменной step
$collectionurl = "https://xxx.visualstudio.com"
$user = "username"
$token = "password"
# Base64-encodes the Personal Access Token (PAT) appropriately
$base64AuthInfo = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f $user,$token)))
$baseUrl = "$collectionurl/_apis/distributedtask/pools/2/agents/1?includeCapabilities=true"
$response = (Invoke-RestMethod -Uri $baseUrl -Method Get -Headers @{Authorization=("Basic {0}" -f $base64AuthInfo)})
#Retrieve values
$maven = $response.systemCapabilities.maven
#Set variable
Write-Host "##vso[task.setvariable variable=maven]$maven"
#Then you can use the variable in the next step: $(maven) in TFS, $env:maven in PowerShell, %maven% in batch script.
UPDATE:
Ну, вы можете использовать PAT безимя пользователя со скриптом ниже ( Если вы не хотите жестко кодировать токен в скрипте, вы можете создать секретную переменную и установить токен в качестве значения переменной, а затем использовать переменную в скрипте ):
$PAT = "nvkoa6qrdrtrxweruiodfiamwd3ya2dkt7r6cx3xxxxw5pyxxxxq"
# Base64-encodes the Personal Access Token (PAT) appropriately
$base64AuthInfo = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f "",$PAT)))
$baseUrl = "$($env:SYSTEM_TEAMFOUNDATIONCOLLECTIONURI)_apis/distributedtask/pools/2/agents/1?includeCapabilities=true"
$response = (Invoke-RestMethod -Uri $baseUrl -Method Get -Headers @{Authorization=("Basic {0}" -f $base64AuthInfo)})
#Retrieve values
$maven = $response.systemCapabilities.maven
Write-Host "##vso[task.setvariable variable=maven]$maven"