要在Scala中使用环境变量,你可以使用Typesafe Config
库来读取application.conf
文件,并使用scala-sbt-dotenv
库来读取.env
文件。
首先,确保在你的项目中添加以下依赖项:
libraryDependencies ++= Seq(
"com.typesafe" % "config" % "1.4.1",
"net.codingwell" %% "scala-sbt-dotenv" % "1.2.0"
)
接下来,创建一个名为EnvConfig
的新文件,用于从.env
文件中读取环境变量:
import com.typesafe.config.{Config, ConfigFactory}
import net.codingwell.scalaguice.InjectorExtensions._
object EnvConfig {
private val config: Config = ConfigFactory.load()
private val envConfig: Config = config.getConfig("env")
val foo: String = envConfig.getString("FOO")
val bar: Int = envConfig.getInt("BAR")
// 添加更多环境变量
// 你也可以添加一些默认值
val baz: String = envConfig.getOrElse("BAZ", "default-value")
}
然后,在你的build.sbt
文件中添加以下内容,以确保.env
文件在构建过程中被加载:
enablePlugins(SbtDotenv)
// 如果你的.env文件不在项目根目录,可以设置以下路径
dotenvPath := Some(file("path/to/.env"))
最后,在你的代码中可以直接使用EnvConfig
对象来访问环境变量。例如:
object Main extends App {
println(EnvConfig.foo)
println(EnvConfig.bar)
println(EnvConfig.baz)
}
当你运行上述代码时,它将从.env
文件中读取相应的环境变量并打印出来。如果.env
文件中没有相应的变量,它将使用默认值(如果有的话)。
希望这可以解决你的问题!