2014-09-04 5 views
7

속성 파일에서 설정 값을 동적으로로드 할 수있는 방법이 있습니까?Java 속성 파일에서 설정 값을로드하는 방법은 무엇입니까?

나는

name := "helloWorld" 

build.sbt 파일에서 다음

name=helloWorld 

그리고 일부 application.properties 파일을 가지고, 대신 build.sbt에 하드 코딩의 의미 name := application.properties["name"] (마지막 예는 순전히 개략도이다, 그러나 나는 그 아이디어가 분명하기를 희망한다.)

답변

11

설정 키 wh ich는 파일에서 읽은 속성을 보유하고 있습니다.

import java.util.Properties 

val appProperties = settingKey[Properties]("The application properties") 

appProperties := { 
    val prop = new Properties() 
    IO.load(prop, new File("application.properties")) 
    prop 
} 

name := appProperties.value.getProperty("name") 
5

@ daniel-olszewski의 답변에 대한 속임수입니다.

libraryDependencies += "com.typesafe" % "config" % "1.2.1" 

build.sbt에서 부하 형태 보증 된 구성을 사용하여 속성과 설정 설정 :

import com.typesafe.config.{ConfigFactory, Config} 

lazy val appProperties = settingKey[Config]("The application properties") 

appProperties := { 
    ConfigFactory.load() 
} 

name := { 
    try { 
    appProperties.value.getString("name") 
    } catch { 
    case _: Exception => "<empty>" 
    } 
} 

당신도 속성에서 값을 설정하는 것 def을 정의 할 수

Typesafe Configproject/build.sbt 선언 의존성에서 .

관련 문제