2014-12-18 4 views
1

나는 Gradle을 빌드 파일에 다른 맛이 있습니다gradle에서 현재 소스 디렉토리를 얻는 방법은 무엇입니까?

내가에서 해당 파일에 대한 참조를 각 응용 프로그램/SRC/맛/디렉토리에

app 
    src 
     flavor1/ 
     java/ 
     app.properties 
     flavor2/ 
     java/ 
     app.properties 

을 .properties 파일을 넣고 사용하고 싶습니다

작업.

groovy/gradle에서 현재 플레이버의 디렉토리를 어떻게 참조 할 수 있습니까?

+0

"현재의 맛"이란 개념이 없습니다. 'build.gradle'에서 여러분이 만드는 것은 작업을 나타내는 객체 모델입니다. 오브젝트 모델이 생성 된 * 후에 *만이 고려 된 작업이며, "현재의 맛"이라는 개념 만이 * 다음 *에 존재합니다. 하지만 그때까지는'build.gradle' 코드가 오랫동안 실행되었습니다. 예외는 사용자가 만드는 모든 맞춤 작업이며 일반적으로 모든 변형에 대해 생성됩니다 (예 : 변형을 반복하여). – CommonsWare

+0

gradle 스크립트에서 app.properties 파일을 전역 적으로 참조하는 방법을 파악하려면 어떤 개념을 조사해야합니까? – sirvon

+0

팔목을 벗고, 나는 맛 속성 파일을 어떻게 할 것인지 전혀 모른다. 당신은 향미 특성 파일로 무엇을 성취하려고합니까? – CommonsWare

답변

2

맛 내기 속성을 실제로 원한다면, 여기 팔목 외 접근법이 있습니다.

1 단계 : 풍미 목록을 작성하십시오. 이 대답을 위해 vanillachocolate을 사용합니다.

2 단계 : 모듈 루트에 flavor 당 속성 파일 (예 : vanilla.properties, chocolate.properties)을 만듭니다.

# 3

단계 : 당신의 productFlavors 폐쇄에서이 같은 것을 사용하여, 그 맛의 특성을로드하고 사용하는 코드를했을 :

productFlavors { 
    vanilla { 
     applicationId "com.commonsware.android.gradle.hello.vanilla" 

     def propFile = rootProject.file('vanilla.properties') 

     if (propFile.canRead()) { 
      def Properties flavorProps = new Properties() 

      flavorProps.load(new FileInputStream(propFile)) 

      // you can now access flavorProps[...] for various string keys 
      // identified here as ..., like flavorProps['foo'] 
     } 
    } 

    // repeat for chocolate and other flavors 
} 

위의 코드에서 유일하게 주름이 내가 할 수있는 내 머리 꼭대기에서 생각하면 내 사용은 rootProject입니다. 이 Gradle 트릭의 모든 샘플 코드는 모듈이없는 프로젝트를위한 것이지만, Android Studio 프로젝트는 종종 app/ 모듈 (a.k.a., 하위 프로젝트)에 코드로 설정됩니다. 이 시나리오에서는 아직이 코드를 실험하지 않았으므로 rootProject이 모듈 또는 최상위 프로젝트 디렉토리를 참조하는지 알 수 없습니다. 모듈을 사용하려면 rootProject 이외의 값을 사용해야합니다.

+0

아플 테스를보고 ... 나는 이미이 방향으로 움직이고 있었고 제품 아래의 모든 것을 설정했습니다. 클로저 마감. 이것은 실제로 나를 더 가깝게 할 것입니다. 타이 – sirvon

관련 문제