У меня есть следующая конфигурация веб-приложения 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>
.
Может быть, кто-то знает другой способ?