맛 내기 속성을 실제로 원한다면, 여기 팔목 외 접근법이 있습니다.
1 단계 : 풍미 목록을 작성하십시오. 이 대답을 위해 vanilla
과 chocolate
을 사용합니다.
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
이외의 값을 사용해야합니다.
"현재의 맛"이란 개념이 없습니다. 'build.gradle'에서 여러분이 만드는 것은 작업을 나타내는 객체 모델입니다. 오브젝트 모델이 생성 된 * 후에 *만이 고려 된 작업이며, "현재의 맛"이라는 개념 만이 * 다음 *에 존재합니다. 하지만 그때까지는'build.gradle' 코드가 오랫동안 실행되었습니다. 예외는 사용자가 만드는 모든 맞춤 작업이며 일반적으로 모든 변형에 대해 생성됩니다 (예 : 변형을 반복하여). – CommonsWare
gradle 스크립트에서 app.properties 파일을 전역 적으로 참조하는 방법을 파악하려면 어떤 개념을 조사해야합니까? – sirvon
팔목을 벗고, 나는 맛 속성 파일을 어떻게 할 것인지 전혀 모른다. 당신은 향미 특성 파일로 무엇을 성취하려고합니까? – CommonsWare