有没有办法从属性文件中动态加载设置值?
我的意思是,而不是硬编码 build.sbt
name := "helloWorld"
Run Code Online (Sandbox Code Playgroud)
有一些application.properties文件
name=helloWorld
Run Code Online (Sandbox Code Playgroud)
然后,在build.sbt文件中,有name := application.properties["name"]
(最后一个例子纯粹是原理图,但我希望这个想法很明确)
Dan*_*ski 14
您可以创建一个设置键,其中包含从文件中读取的属性.
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")
Run Code Online (Sandbox Code Playgroud)
在@ daniel-olszewski的答案中作弊.
在project/build.sbt声明对Typesafe配置的依赖性:
libraryDependencies += "com.typesafe" % "config" % "1.2.1"
Run Code Online (Sandbox Code Playgroud)
在build.sbt使用Typesafe配置和设置设置的加载属性中:
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>"
}
}
Run Code Online (Sandbox Code Playgroud)
您也可以定义一个def可以从属性中设置值的方法.
| 归档时间: |
|
| 查看次数: |
3976 次 |
| 最近记录: |