Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala SBT不';无法正确识别它自己的类路径_Scala_Sbt_Akka - Fatal编程技术网

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))