【发布时间】:2018-10-11 11:23:02
【问题描述】:
我已经成功地将 Gradle proj.ver 注入到 application.yml 中,然后将其注入到服务应用程序中。 我的 application.yml 如下所示:
project:
version: ${version}
但只有当我从 cli 启动应用程序时它才有效:
gradle bootRun
如果我尝试从 IntelliJ 启动应用程序,它不起作用并且失败:
Caused by: java.lang.IllegalArgumentException: Could not resolve placeholder 'version' in value "${version}"
我阅读了 Stackoverflow 的所有答案,他们提出了两种解决方案:
使用弹簧型材
修改运行配置并在启动 gradle 任务之前运行:processResources
当我从 IntelliJ 运行时,我更喜欢 proj.ver 的 default 值。那可能吗?或者对于这种情况有更好的解决方案吗?
谢谢
【问题讨论】:
-
${version:default}如果没有找到,应该给你一个默认值。 -
感谢答案,但正如我在答案中所写的那样,似乎只有双方都喜欢这样的工作:
${version?:unknown} -
这不是必需的,因为它是一个值表达式而不是 SpEL 表达式。除非这是由 gradle (它可能是)以某种方式解析的,它会进行替换。
-
你能说一下你是如何将 gradle 属性注入到 application.yaml 中的吗?
-
是的,当然,我已经更新了回复。你可以在那里找到步骤。希望对您有所帮助。
标签: spring-boot gradle intellij-idea spring-boot-gradle-plugin