2015-10-15 1 views
1

Voici à quoi ressemble le fichier YAML. Ce que j'essaie de faire est de renvoyer le databaseHostURL.Le démarrage de démarrage ne peut pas référencer un noeud dans un fichier YAML. Aucune propriété de ce type

spring: 
    profiles: default 

databaseHostURL: localhost:3306 

    datasource: 
     driverClassName: com.mysql.jdbc.Driver 
     url: jdbc:mysql://${databaseHostURL}/mydatabase 

Voici l'erreur sur Spring bootRun.

6:20:06 PM: Executing external task 'bootRun'... 
:compileJava UP-TO-DATE 
:compileGroovy UP-TO-DATE 
:processResources FAILED 

FAILURE: Build failed with an exception. 

* What went wrong: 
Execution failed for task ':processResources'. 
> Could not copy file '/com/home/users/Test/src/main/resources/application.yml' to '/com/home/users/Test/build/resources/main/application.yml'. 

* Try: 
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. 

BUILD FAILED 

Total time: 0.589 secs 
No such property: databaseHostURL for class: SimpleTemplateScript7 
6:20:07 PM: External task execution finished 'bootRun'. 

Répondre

1

Je souhaite voir votre fichier build.gradle. Sur la base de l'échec que vous voyez, Je devine que la « processResources » fermeture dans votre build.gradle est pas vide, et je suis aussi devinant ressemble à quelque chose comme ceci:

processResources { 
    expand(project.properties) 
} 

Le expand() tente de remplacer ce qu'il pense être des propriétés dans votre application.yml avec leurs valeurs, et quand il voit le $ {databaseHostUrl}, il essaie de le remplacer par la valeur de cette propriété - sauf que cette propriété n'est pas définie, donc vous obtenez ce message d'erreur:

No such property: databaseHostURL for class: SimpleTemplateScript7 

Si databaseHostURL est dans Deed une propriété que vous essayez de référencer à partir du Gradle environment, alors vous devez vous assurer qu'il est défini quelque part. D'autre part, si databaseHostURL est un Spring property, peut-être défini en utilisant une valeur d'environnement, alors je vous suggère de commenter le bloc processResources et de voir si cela permet à votre build de dépasser la tâche processResources et de résoudre votre problème.

1

Je pense que c'est parce que vous ajoutez la propriété au milieu, entre Spring et la source de données.

Essayez d'ajouter la propriété avant l'étiquette Spring.

databaseHostURL: localhost:3306 
spring: 
    profiles: default 

    datasource: 
     driverClassName: com.mysql.jdbc.Driver 
     url: jdbc:mysql://${databaseHostURL}/mydatabase