使用 build.gradle 中 application.yml 文件中的值
Posted
技术标签:
【中文标题】使用 build.gradle 中 application.yml 文件中的值【英文标题】:Use value from application.yml file inside build.gradle 【发布时间】:2021-04-22 23:16:16 【问题描述】:我想知道我的 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 等)。
【参考方案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 不,它一直说找不到指定的路径。以上是关于使用 build.gradle 中 application.yml 文件中的值的主要内容,如果未能解决你的问题,请参考以下文章
使用 clean() 方法在我的 build.gradle 中出错