Scala SBT不';无法正确识别它自己的类路径
请看下面的代码片段 这是我的超简单应用程序:Scala SBT不';无法正确识别它自己的类路径,scala,sbt,akka,Scala,Sbt,Akka,请看下面的代码片段 这是我的超简单应用程序: object EchoServer extends App { println(com.typesafe.config.ConfigFactory.load()) } 上面的代码实现了预期的功能:显示从reference.conf(可以在akka actor.jar中找到)中获取的配置,该配置与env变量合并 现在看看my Build.scala: import sbt._ import Keys._ imp
object EchoServer extends App {
println(com.typesafe.config.ConfigFactory.load())
}
上面的代码实现了预期的功能:显示从reference.conf(可以在akka actor.jar中找到)中获取的配置,该配置与env变量合并
现在看看my Build.scala:
import sbt._
import Keys._
import com.typesafe.config._
object Build extends Build {
println(com.typesafe.config.ConfigFactory.load())
lazy val XXXProject = Project(
id = "x-x-x",
base = file("."),
settings = Defaults.defaultSettings ++ Seq(
organization := "a.b.c",
version := "0.0.1",
scalaVersion := "2.10.4",
crossPaths := false
libraryDependencies ++= Seq (
"com.typesafe.akka" %% "akka-actor" % "2.3.2",
"com.typesafe" % "config" % "1.2.0"
)
)
)
}
在这里,启动SBT后,也会显示配置,但它只包含env变量。它没有解析reference.conf为什么?以及如何处理
我计划从SBT内部启动一个ActorSystem,这个问题是我的主要障碍
我可以做一个变通方法——将reference.conf复制到我的项目中,等等。但我正在寻找更优雅的解决方案
好奇者的更多数据:
plugins.sbt:
libraryDependencies += "com.typesafe.akka" %% "akka-actor" % "2.3.2"
libraryDependencies += "com.typesafe" % "config" % "1.2.0"
build.properties:
sbt.version=0.13.2
因此,我发现我必须使用正确的类加载器(不是SBT提供的类加载器):
val classLoader = ActorSystem.getClass.getClassLoader
println(com.typesafe.config.ConfigFactory.load(classLoader))