Как заменить свойства файла yaml значением по умолчанию? - PullRequest
0 голосов
/ 29 апреля 2019

У меня есть следующая конфигурация веб-приложения Grats kts:

tasks.withType<ProcessResources> {
        filesMatching("application-test.yaml") {
            expand(project.properties)
        }
    }

application-test.yaml выглядит как

spring:
  datasource:
    hikari:
      maximum-pool-size: 25
    username: ${DB_USERNAME:user}
    password: ${DB_PASSWORD:password}
    url: ${DB_CONNECT_URL:jdbc:postgresql://localhost:5432/database}

Когда я выполняю команду:

./gradlew clean test -PDB_PASSWORD=password -PDB_USERNAME=error_user -PDB_CONNECT_URL=jdbc:postgresql://localhost:5432/database

В скрипте groovy есть ошибка:

Failed to parse template script (your template may contain an error or be trying to use expressions not currently supported): startup failed:
SimpleTemplateScript6.groovy: 9: unexpected token:  @ line 9, column 40.

Но если я удаляю значения по умолчанию, все в порядке.Я пытался

  • заменить разделитель на @@ / '@@'
  • использовать \ $ {} вместо $ {}
  • использовать Groovy-код в yaml: ${DB_PASSWORD?!password}

Одна вещь, которая помогла мне, это kts-код для получения и замены свойств в build.gradle.kts на filter<ReplaceTokens>.

Может быть, кто-то знает другой способ?

...