2015-09-15 95 views
1

由於訪問:設置配置屬性在REPL

的src /測試/斯卡拉/ NET/Main.scala

package net 

import com.typesafe.config.ConfigFactory 

object Main extends App { 
    override def main(args: Array[String]) { 
     val bar = ConfigFactory.load().getString("app.bar") 
     val bippy = ConfigFactory.load().getString("app.bippy") 
     println(s"bar: $bar | bippy : $bippy") 
    } 
} 

的src /測試/資源/ application.conf

app { 
    bar = ${?BAR} 
    bippy = ${?BIPPY} 
} 

我試圖設置BARBIPPY環境變量sbt

>set envVars := Map("BAR" -> "bar!", "BIPPY" -> "bippy!")

然後,我在測試模式下打開REPL:

>test:console

scala> import net.Main 
import net.Main 

scala> Main.main(Array()) 
com.typesafe.config.ConfigException$Missing: No configuration setting 
    found for key 'app.bar' 

如何設置這些屬性REPL?

回答

1

使用-Dconfig.file系統屬性

[localhost]$ sbt -Dconfig.file=src/test/resources/application.conf 
[info] Loading global plugins from ~/.sbt/0.13/plugins 
[info] Loading project definition from ~/my/project 
[info] Set current project to my-project (in build file:~/my/project/) 
> console 
[info] Starting scala interpreter... 
[info] 
Welcome to Scala version 2.11.6 (OpenJDK 64-Bit Server VM, Java 1.8.0_72-internal). 
Type in expressions to have them evaluated. 
Type :help for more information. 

scala> import com.typesafe.config._ 
import com.typesafe.config._ 

scala> val config = ConfigFactory.load() 
config: com.typesafe.config.Config = Config(SimpleConfigObject({"test": "success"}) 

scala> val value = config.getString("test") 
value: String = test 
通過您的配置文件