有没有办法让我从属性文件动态加载设置值?如何从Java属性文件加载设置值?
我的意思,而不是硬编码到build.sbt
name := "helloWorld"
有一些application.properties
文件,
name=helloWorld
,然后在build.sbt
文件,有name := application.properties["name"]
(最后一个例子是纯示意性的,但我希望这个想法很清楚)
有没有办法让我从属性文件动态加载设置值?如何从Java属性文件加载设置值?
我的意思,而不是硬编码到build.sbt
name := "helloWorld"
有一些application.properties
文件,
name=helloWorld
,然后在build.sbt
文件,有name := application.properties["name"]
(最后一个例子是纯示意性的,但我希望这个想法很清楚)
你可以创建一个设置键wh它拥有从文件中读取的属性。
import java.util.Properties
val appProperties = settingKey[Properties]("The application properties")
appProperties := {
val prop = new Properties()
IO.load(prop, new File("application.properties"))
prop
}
name := appProperties.value.getProperty("name")
从@ daniel-olszewski回答了一下。
在上Typesafe Configproject/build.sbt
声明依赖性:使用类型安全配置
libraryDependencies += "com.typesafe" % "config" % "1.2.1"
在build.sbt
负荷特性,并设置设置:
import com.typesafe.config.{ConfigFactory, Config}
lazy val appProperties = settingKey[Config]("The application properties")
appProperties := {
ConfigFactory.load()
}
name := {
try {
appProperties.value.getString("name")
} catch {
case _: Exception => "<empty>"
}
}
你可以定义一个def
会从属性设置值,也。