【问题标题】:Use value from application.yml file inside build.gradle使用 build.gradle 中 application.yml 文件中的值
【发布时间】:2025-11-22 10:40:01
【问题描述】:

我想知道我的 application.yml 文件中是否可以有一个值:

app:
  constant:
    foo:
      fooValue: 'test'

并获取此值并将其放入我的 build.gradle 文件中的变量中

到目前为止我已经尝试过:

How to load yml propery to gradle

我尝试了上面链接中的解决方案,但是

def app = new org.yaml.snakeyaml.Yaml().loadAll(new File("src/main/resources/application.yml").newInputStream()).first()

上面在我的 build.gradle 中抛出了一个错误'src\main\resources\application.yml (The system cannot find the path specified)'

有谁知道我可以如何解决上述错误或更好的解决方案?

【问题讨论】:

  • 您是否需要在构建时和应用程序运行时访问该值?
  • @JeffScottBrown 构建时间
  • 为什么要应用程序的application,yml 配置文件中的数据?更好的计划是将该文件排除在外,因为将 Gradle 构建配置与 Micronaut 运行时配置混合在同一个文件中会导致混淆。
  • @JeffScottBrown 是的,你是对的,有更好的方法。我只是有点缺乏经验,所以认为这也许是个好主意,但似乎我可以做得更好。我试图让我的 build.gradle 文件知道它在哪个环境中运行(dev、qa 等)。

标签: spring-boot gradle groovy yaml


【解决方案1】:

如果有人想知道,将 $projectDir 添加到文件路径的开头可以解决问题。

def app = new org.yaml.snakeyaml.Yaml().loadAll(new File("$projectDir/src/main/resources/application.yml").newInputStream()).first()

【讨论】:

  • 如果只是new File("application.yml"),是否有效?
  • @R.G 不,它一直说找不到指定的路径。
最近更新 更多