将Gradle属性注入Spring Boot application.yml,在IntelliJ IDEA中不起作用

BrebDev

我设法将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的所有答案,并提出了两种解决方案:

  1. 使用弹簧轮廓

  2. 修改运行配置并在启动gradle任务之前运行:processResources

从IntelliJ运行时,我更喜欢proj.ver默认值。那可能吗?还是针对这种情况有更好的解决方案?
谢谢

BrebDev

正如Deinum M在上面的评论中所说,我设法从IntelliJ运行该应用程序,但是现在gradle bootRun开始失败了:

原因:groovy.lang.MissingPropertyException:无此类属性:类未知:SimpleTemplateScript2

经过更多研究之后,似乎${version?:unknown}带有问号)它可以在IDE或cli中运行。


我已经更新了响应,以便其他人知道如何将Gradle构建信息注入Spring-boot:

1)告诉Gradle将构建数据传递给Spring yml文件,如下所示:

processResources {
filesMatching('appInfo.yml') {
    expand(project.properties)
}}

2)appInfo.yml如下所示:

project:
  version: ${version?:unknown}

3)将构建版本注入到Spring服务中,例如:

@Value("${project.version}")
private String applicationVersion;

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

根据application.yml的属性注入Spring Boot

如何将映射从application.yml注入到Spring Boot的字段中?

如何让Intellij识别application.yml中的属性

使用命令行参数覆盖spring-boot中的yml配置不起作用

Spring Boot devtools-静态内容重新加载在IntelliJ中不起作用

在spring-boot中从application.yml文件获取cron

Spring Boot application.yml中的环境变量

如何在Spring Boot的application.yml中配置cassandra?

Spring Boot 從 application.yml 注入地圖列表

Spring Boot-从application.yml注入映射

WebMvcConfigurer 在 Spring Boot 中不起作用?

辅助类型依赖注入在 spring boot 中不起作用

Spring Boot-如何将application.yml属性定义为application.properties

Gradle插件在Intellij IDEA中不起作用(计算任务图)?

无法从JUnit Test加载'application.yml'中的Spring Boot属性

Spring Boot-无法从application.yml中读取自定义属性

Spring Boot 2 忽略在 application.yml 中设置的 HikariCP 属性

Spring Boot:从Kubernetes ConfigMap覆盖application.yml属性

Spring Boot 2.1:未从application-test.yml加载属性

Spring Boot-忽略.jar文件中的application.yml / bootstrap.yml

Spring Boot配置属性不起作用

Spring Boot的application.yml和application.properties

json中的Json在Spring Boot中不起作用

@Transactional在带有CrudRepository的Spring Boot中不起作用

Spring Boot-@PreAuthorize在测试中不起作用

RestController在oauth2 Spring Boot中不起作用

Spring Boot 2.2.2 - Prometheus 在 Actuator 中不起作用

多模块组件扫描在Spring Boot中不起作用

注释CrossOrigin在Spring Boot中不起作用