#azure #azure-devops
#azure #azure-devops
Вопрос:
Я новичок в Stack Overflow и Azure.
Я хочу несколько репозиториев в одном проекте. Многие репозитории будут иметь исходный код, который часто меняется (repoX), и один с большими файлами jar, которые меняются редко (repo2). Repo2 будет использоваться для сборки ANT в разных репозиториях. В конвейере Azure для repoX я хочу передать путь repo2 к build.xml это путь к классу, и, похоже, не удается найти правильный синтаксис. Я знаком с ANT, просто нужен синтаксис. В справке Azure показано несколько способов настройки свойств сборки, таких как переменные, env и т.д.
Спасибо за вашу помощь.
Ответ №1:
Большое вам спасибо за вашу помощь. Я смог передать параметр в свой файл сборки. Я не смог заставить работать задачу замены токена (я думаю, что она устарела), но поскольку свойства ANT неизменяемы, когда я устанавливаю переменную classpath в ПАРАМЕТРАХ задачи ANT, она была выбрана в файле сборки. Вот мой конвейер:
trigger:
- master
pool:
vmImage: 'ubuntu-latest'
resources:
repositories:
- repository: THE_JDK
type: git
name: FOLDER/THE_JDK
steps:
- checkout: self
- checkout: THE_JDK
- script: |
echo $(Build.SourcesDirectory)
ls $(Build.SourcesDirectory) *
- powershell: Write-Host "##vso[task.setvariable variable=jdk.home;]$(Build.SourcesDirectory)/THE_JDK"
- task: Ant@1
inputs:
buildFile: 'trunk/TheApp/build/build.xml'
options: -Djdk.home=$(jdk.home)
targets: 'dist-trunk'
javaHomeOption: 'JDKVersion'
jdkVersionOption: '1.8'
jdkArchitectureOption: 'x64'
publishJUnitResults: true
testResultsFiles: '**/TEST-*.xml'
Комментарии:
1. Приятно видеть, что ваша проблема решена. Вы могли бы принять это как ответ , как только сможете, это может быть полезно для других участников сообщества, читающих эту тему.
Ответ №2:
Что вы можете попробовать, так это использовать проверку нескольких репозиториев
resources:
repositories:
- repository: devops
type: github
name: kmadof/devops-templates
endpoint: kmadof
steps:
- checkout: self
- checkout: devops
- script: |
echo $(Build.SourcesDirectory)
ls $(Build.SourcesDirectory) *
Здесь мы оформляем два репозитория, один из которых будет отправлен в devops-manual
папку (self repo, в вашем случае это должно быть repoX), а другой — в devops-templates
папку (repo2 в вашем случае).
Теперь вы должны назначить путь к repo2 в переменной. Для этого вам следует использовать команду ведения журнала:
- powershell: Write-Host "##vso[task.setvariable variable=repoxpath;]$(Build.SourcesDirectory)/devops-templates"
Теперь мы должны обновить build.xml
с помощью path, и поэтому я рекомендую использовать Replace Token
task
- task: replacetokens@3
inputs:
targetFiles: '<path-t-your-build.xml-file>'
encoding: 'auto'
writeBOM: true
actionOnMissing: 'warn'
keepToken: false
tokenPrefix: '#{'
tokenSuffix: '}#'
useLegacyPattern: false
enableTelemetry: true
В том месте, где вы хотите указать путь, у вас должен быть этот токен #{repoxpath}#