我正在創建一個valinto my build.sbt,由一個隨機字串組成,用于 scalatest的Setupand方法,如下所示:Cleanup
val foo = Random.alphanumeric.take(3).mkString
...
Test / testOptions = Tests.Setup(() => {
// do stuff with it
})
...
Test / testOptions = Tests.Cleanup(() => {
// do stuff with the same string
}
但似乎這兩個函式實際上是在重新評估val,導致兩個不同的字串。似乎 JVM ( fork := true) 的分叉并沒有在其中發揮作用,所以我有點沒有想法。這是有意的和/或有辦法解決它/找到解決問題的另一種方法(原生于 Scala/sbt)?
uj5u.com熱心網友回復:
顯然解決方案比想象的要容易:
lazy val foo = SettingKey[String]("foo", "Random string")
foo := Random.alphanumeric.take(3).mkString
然后foo.value在之后呼叫sbt代碼
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/496933.html
下一篇:ScalaSpark:如何將Array[(String,String,String)]轉換為Map[String,Map[String,String]]
