2014-04-26 3 views
0

아래 스 니펫을 살펴보십시오.SBT가 자체 클래스 경로를 올바르게 인식하지 못합니다.

이 내 매우 간단한 응용 프로그램입니다 : (akka-actor.jar에서 찾을 수 있습니다) reference.conf에서 가져온 디스플레이 구성이 ENV 합병 : 위의 코드가 할 것으로 예상된다 무엇 않습니다

object EchoServer extends App { 

    println(com.typesafe.config.ConfigFactory.load()) 

} 

변수.

지금 내 Build.scala 한 번 봐 가지고 : SBT가 출시 된 후 여기에

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

가, 구성도 표시되어 있지만, 그것은 단지 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 

답변

0

그래서, 나는 바로 클래스 로더를 사용한다는 것을 발견 (SBT가 제공하지 않은 것) :

val classLoader = ActorSystem.getClass.getClassLoader 
println(com.typesafe.config.ConfigFactory.load(classLoader)) 
관련 문제