以下是YAML文件的外观。我要做的是参考databaseHostURL
。
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'.
答案 0 :(得分:1)
我想看看你的build.gradle文件。 根据你看到的失败, 我在猜测" processResources" build.gradle中的闭包不为空, 我也猜测它看起来像这样:
processResources {
expand( project.properties )
}
expand()尝试用它们的值替换它认为是application.yml中的属性,当它看到$ {databaseHostUrl}时,它会尝试用该属性的值替换它 - 除了该属性未设置,因此您收到错误消息:
No such property: databaseHostURL for class: SimpleTemplateScript7
如果databaseHostURL确实是您尝试从Gradle environment引用的属性,那么您需要确保它在某处定义。
另一方面,如果databaseHostURL是Spring property,可能是使用环境值设置的,那么我建议您尝试注释掉processResources块,看看是否可以让你的构建通过processResources任务并解决你的问题问题
答案 1 :(得分:1)
我认为这是因为你在Spring和数据源之间添加了属性。
尝试在Spring标记之前添加属性。
databaseHostURL: localhost:3306
spring:
profiles: default
datasource:
driverClassName: com.mysql.jdbc.Driver
url: jdbc:mysql://${databaseHostURL}/mydatabase