Spring Boot – Carregando as propriedades do Gradle no application.yml (Automatic Property Expansion Using Gradle)

Normalmente quando utilizamos o Spring Boot e queremos carregar uma propriedade do pom.xml nos arquivos de resources utilizamos o delimitador @, isso atualmente funciona de maneira automática.

Recentemente tive que implementar essa funcionalidade com o Gradle, e diferente do Maven isso não funciona de forma automática e a maneira de acesso as propriedades é diferente.

Tentei seguir a implementação da própria documentação do Spring Boot nesse link , que sugere configurar a task processResources no arquivo build.gradle do projeto da seguinte maneira:

#File: build.gradle

description = "Project description"

#[...]

processResources {
   expand(project.properties)
}

#[...]

A utilização dos properties do Gradle no application.yml é realizada pelo delimitador ${...} segue um exemplo pegando a description contida no build.gradle do projeto:

# File: application.yml
application:
  version: ${description}

Porém ao realizar esse procedimento me deparei com o seguinte erro:

Failed to parse template script (your template may contain an error or be trying to use expressions not currently supported): startup failed:
SimpleTemplateScript5.groovy: 2: unexpected char: ‘\’ @ line 2, column 35.
| .’ / | | | .—‘ / O \ | ,’.| | ,—–. / O \ | .–. ‘ ‘ .–./ | ‘–‘ |
^

1 error

Esse problema aparece somente após realizar a configuração do processResources , realizei uma pesquisa rápida e encontrei a seguinte solução para configura-lo:

processResources {
    filesMatching("application.yml") {
        expand(project.properties)
    }
}

O filesMatchingrealiza um filtro para aplicar as propriedades, no caso selecionamos somente o arquivo application.yml

Help DEV – Analista desenvolvedor Java / Android https://helpdev.com.br/zarelli

Spring Boot – Carregando as propriedades do Gradle no application.yml (Automatic Property Expansion Using Gradle)

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.

Rolar para o topo