Java Spring boot无法引用YAML文件中的节点。没有这样的财产

Java Spring boot无法引用YAML文件中的节点。没有这样的财产,java,spring,gradle,spring-boot,yaml,Java,Spring,Gradle,Spring Boot,Yaml,下面是YAML文件的外观。我试图做的是引用数据库hosturl spring: profiles: default databaseHostURL: localhost:3306 datasource: driverClassName: com.mysql.jdbc.Driver url: jdbc:mysql://${databaseHostURL}/mydatabase 下面是Spring引导运行的错误 6:20:06 PM: Executing e

下面是YAML文件的外观。我试图做的是引用
数据库hosturl

spring:
   profiles: default

databaseHostURL: localhost:3306

   datasource:
      driverClassName: com.mysql.jdbc.Driver
      url: jdbc:mysql://${databaseHostURL}/mydatabase
下面是Spring引导运行的错误

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'.

我想看看你的build.gradle文件。 基于你所看到的失败, 我猜build.gradle中的“processResources”闭包不是空的, 我也猜它看起来像这样:

processResources {
    expand( project.properties )
}
expand()试图用它们的值替换它认为是application.yml中的属性,当它看到${databaseHostUrl}时,它试图用该属性的值替换它-除了未设置该属性,因此您会收到错误消息:

No such property: databaseHostURL for class: SimpleTemplateScript7
如果databaseHostURL确实是您试图从引用的属性,那么您需要确保它是在某个地方定义的


另一方面,如果DavaSaveHoestURL是A,可能使用环境值来设置,那么我建议您注释一下Studio资源块,看看它是否允许您的构建通过处理资源任务并解决您的问题。

< P>我认为这是因为您在中间添加了属性,在Spring和DATA源之间。

尝试在Spring标记之前添加属性

databaseHostURL: localhost:3306
spring:
   profiles: default

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