Android Gradle Plugin 3.0 마이그레이션에서 한 일

5128 단어 안드로이드gradle
공식 문서도 충실하고 더 이상 쓰는 일은 없을 정도입니다.
이해할 수없는 부분이 있기 때문에 Android Gradle Plugin 3.0에서 한 것을 메모.

1. gradle-wrapper.properties 업데이트


distributionUrl=
  https\://services.gradle.org/distributions/gradle-4.1-rc-1-all.zip

2. build.gradle 수정


-- compile 'com.hogehoge.age:hoge:1.0.0'
++ implementation 'com.hogehoge.age:hoge:1.0.0'

configuration 필요 없음
-- degubCompile project(path':hogelib', configuration: 'debug')
++ debugImplementation project(':hogelib')

app가 의존하는 모듈은 app의 BuildVariant를 인수하기 때문에 위에서 갈 수 있다는 이해.

이전에는 configuration에서 buildType을 지정하는 곳을 의식하지 않고 설정할 수 있다.

flavor가 설정되면



다음과 같이 쓸 수 있습니다.
flavor1Implementation project(':hogelib')

종속 모듈 제거


flavor1Implementation (project('hogelib')) {
   exclude group:'com.xxx.xxx' module:'hoge'
}

3. google() 추가 및 gradle 업데이트


buildscript {
    repositories {
        google()
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:3.0.1'
    }
}


4. ProductFlavor시 설정



productFlavors가 설정되면 flavorDimensions를 설정해야합니다.
  • 앱 측
  •     flavorDimensions "environment"
    
        productFlavors {
            flavor1 {
                dimension "environment"
            }
            flavor2 {
                dimension "environment"
            }
        }
    
  • 종속 모듈 측
  •     flavorDimensions "environment"
    
        productFlavors {
            flavor1 {
                dimension "environment"
            }
            flavor2 {
                dimension "environment"
            }
            flavor3 {
                dimension "environment"
            }
        }
    

    앱 측에만 존재하는 BuildType이 있는 경우



    앱과 종속 모듈에 동일한 flavorDimensions가 있으면
    그렇지만 flavor는 서로 설정이 다르므로 때에 사용합니다.
  • 앱 측
  • android {
      ~ ~ ~ ~
        productFlavors {
            flavor1 {
                matchingFallbacks = ['flavor3', 'flavor4']
            }
            flavor2 {}
        }
    }
    
  • 종속 모듈 측
  • android {
      ~ ~ ~ ~
        productFlavors {
            flavor3 {}
            flavor4 {}
        }
    }
    

    종속 모듈 측에만 존재하는 flavorDimensions가 있는 경우



    의존 라이브러리의 flavorDimensions명, 재우선의 의존 라이브러리의 flavor명, 다음에 우선하는 flavor명을 지정한다.
  • 앱 측
  • android {
        defaultConfig{
          missingDimensionStrategy [flavorDimensions名], [flavor1], [flavor2]
        }
    }
    

    좋은 웹페이지 즐겨찾기