2012-11-02 2 views
2

저는 akka 배우가있는 작업을 수행하는 하위 프로젝트 (라이브러리)가있는 SBT 프로젝트가 있습니다.SBT 하위 프로젝트의 Akka 응용 프로그램 별 설정

akka docs처럼 서브 프로젝트의 reference.conf에서 응용 프로그램 특정 구성을로드하려고합니다.
간단한 SBT 프로젝트에서 이 아니고이 아닌 프로젝트는 하위 프로젝트가 포함되어 있습니다. 그렇다면 왜 하위 프로젝트에서는 그렇지 않습니까?

는 어떻게 설정을로드 :

val config = ConfigFactory.load() 
implicit val system:ActorSystem = ActorSystem("MyLibSystem", config.getConfig("library-project-conf").withFallback(config)) 

reference.conf

library-project-conf { 
    akka { 
    loglevel = DEBUG 
    # some more stuff 
    } 
} 

나는 library-project-conf 외부 akka confuguraton을 넣으면 akka 에 대한 구성 설정 읽기입니다.

나는 sbt library-project/test을 실행합니다.
log akka's configurationakka.log-config-on-start = on 인 경우 많은 유용한 정보를 얻을 수 있습니다.

답변

0

이것은 ConfigFactory.load() - 메소드에 지정하지 않을 때 사용되는 클래스 로더와 관련이 있습니다.

구성 파일에 액세스 할 수있는 클래스 로더를 사용해야합니다.

또한 reference.conf는 기존 기본값을 변경하지 않고 새로운 기본값을 추가하기위한 것이므로 application.conf와 reference.conf가 필요하다고 생각합니다.

+0

application.conf 설명 : 올바른 것입니다. 파일 이름을 변경했습니다. 구성에 액세스 할 수있는 ClassLoader 들어, 나는이 문제가 아니라고 믿고, application.conf _is_ 읽고, _outside_ 설정 _outside_ _do_ 효과가 걸리는 라이브러리 프로젝트 conf 추가 할 수 있습니다. 하지만 어쩌면 나는 당신의 제안을 오해하고 있습니다. – derabbink

+0

다른 reference.confs에서 값을 변경하는 경우 reference.conf를 사용하지 마십시오. reference.conf는 기본값을 제공하기위한 것이지 무시하지는 않습니다. application.conf 사용 –

+0

내가 말한 것처럼 reference.conf의 이름을 변경했습니다. 모든 것은 모든 클래스 로더와 아무 관련이 없습니다. 필자는 라이브러리 자체의 (test-) application.conf는'library-project-conf {}'섹션을 포함 할 필요가 없으며 라이브러리가 다른 프로젝트에서 사용될 때만 그러한 섹션이 효과가 있다고 생각합니다. 나는 아직 이것을 확인할 수 없었다. – derabbink

관련 문제