2015-10-15 2 views
1

Вот как выглядит файл YAML. То, что я пытаюсь сделать, это указать databaseHostURL.Spring boot не может передать узел в файл YAML. Нет такого свойства

spring: 
    profiles: default 

databaseHostURL: localhost:3306 

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

Это ошибка на 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'. 

ответ

1

Я хотел бы видеть ваш файл build.gradle. На основании отказа вы видите, я угадываю «processResources» замыкание в вашем build.gradle не пусто, и я также предполагаю, что это выглядит примерно так:

processResources { 
    expand(project.properties) 
} 

расширяемой() пытается заменить то, что он считает свойствами в вашем приложении.yml с их значениями, и когда он видит $ {databaseHostUrl}, он пытается заменить его значением этого свойства, за исключением того, что свойство не установлено, поэтому вы получаете это сообщение об ошибке:

No such property: databaseHostURL for class: SimpleTemplateScript7 

Если база данныхHostURL находится в что вы пытаетесь ссылаться на Gradle environment, тогда вам нужно убедиться, что он где-то определен.

С другой стороны, если databaseHostURL является Spring property, может быть установлено с использованием значения среды, то я предлагаю вам попробовать прокомментировать блок processResources и посмотреть, позволяет ли эта функция завершить процесс processResources и решает вашу проблему.

1

Я думаю, это потому, что вы добавляете свойство посередине между Spring и datasource.

Попробуйте добавить свойство перед тегом Spring.

databaseHostURL: localhost:3306 
spring: 
    profiles: default 

    datasource: 
     driverClassName: com.mysql.jdbc.Driver 
     url: jdbc:mysql://${databaseHostURL}/mydatabase 
Смежные вопросы