首页 > 解决方案 > SBT - 如何根据外部源向 application.conf 文件添加/修改值

问题描述

我读到它SBT具有生成源代码和资源文件的功能。

就我而言,我想application.conf在项目的编译/打包期间添加/修改文件中的字段(将其他字段保留在原地)

例如,我的 application.conf 文件有如下内容:

A {
  B = "Some Value"
  C = "Some value to be modified"
}

我想在 SBT 中读取外部文件并更改或添加 AB 或 AC 的值

因此,如果可以按照以下方式做一些事情:

build.sbt

lazy val myProject = project.in(file('myproject')
// pseudo code - How do I do this?
.sourceGenerators in Compile += "Read file /path/to/external/file and add or replace the value of application.conf A.B = some external value"

标签: scalasbttypesafetypesafe-config

解决方案


您可以用编译/构建项目时提供的环境变量值替换这些值。为此,您必须

A {
  B = "Some Value"
  B = ${?B_ENV}
  C = "Some value to be modified"
  C = ${?C_ENV} 
}

在构建之前或在构建命令中(在它之前)中,您在终端中设置的环境变量B_ENV在哪里?C_ENV

$ B_ENV=1 C_ENV=2 sbt run

来源:https ://www.playframework.com/documentation/2.6.x/ProductionConfiguration#using-environment-variables


推荐阅读