Мне нужно передать базу данных, имя пользователя и пароль для подключения к базе данных из VSTS. Я выполняю проект maven.
Я определил переменные в VSTS. Я хочу иметь файл свойств, например
datasource.url = "${database}"
datasource.username = "${username}"
datasource.password = "${password}"
Возможно ли это сделать? или я должен получить переменные из кода Java?




Создайте для него задачу. Например, в конвейере сборки:
- task: Bash@3
inputs:
targetType: inline
script: 'sed -i "s/\${database}/\$(database)/g" db.properties'
displayName: 'inject properties'
И так далее.
Is possible to do this? or should I get the variables from the java code?
Конечно, может. И вам не нужно выполнять другую сложную операцию, просто используйте задачу с именем Задача «Заменить токены».
Это работает не только в файле .config, но и очень эффективно в файле .properties.
В качестве примера просто измените определение переменной, чтобы к ней можно было правильно обращаться:
datasource.url = "#{database}#"
datasource.username = "#{username}#"
datasource.password = "#{password}#"
Формат переменной в файле .properties — #{VariableName}#.
Затем добавьте задачу «Замена токенов» в конвейер. Добавьте значение на вкладке Переменная:
Для настройки задачи достаточно указать значение Целевые файлы:
После завершения сборки перейдите к локальному файлу. Вот результат моего теста, вы можете видеть, что замена прошла успешно:
Примечание. Во время сборки с помощью этой задачи будет выдано сообщение об ошибке, например: ##[error]EISDIR: illegal operation on a directory, read. Но на самом деле это не влияет на операцию замены этих переменных. Вы увидите, что файл был успешно заменен.