Android 프로젝트 인 스 턴 스 config.gradle 설정

9140 단어 Android
gradle 은 사용자 정의 config.gradle 을 지원 합 니 다.Google Samples 에서 키워드 ext(ExtraPropertites Extension 에 대응 하 는 인 스 턴 스)를 사용 하여 동적 속성 을 정의 해 야 한다 고 언급 했 습 니 다.
  • config.gradle

  • config.gradle
    procject 루트 디 렉 터 리 아래 config.gradle 을 사용자 정의 하여 일부 설정 정보 와 제3자 가 통일 관리 에 의존 합 니 다.코드 는 다음 과 같다.
    ext {
    //   ext    
    
        android = [
                compileSdkVersion   : 25,
                buildToolsVersion   : '25.0.0',
                applicationId       : 'com.alpha.alphaapp',
                minSdkVersion       : 17,
                targetSdkVersion    : 25,
                versionCode         : 1,
                versionName         : 'v 1.1.0',
                defaultPublishConfig: 'release',
                publishNonDefault   : true
        ]
    
        dependencies = [
                "appcompat-v7"      : 'com.android.support:appcompat-v7:25.1.0',
                "support-design"    : 'com.android.support:design:+',
                "support-v4"        : 'com.android.support:support-v4:25.3.1',
                "roundedimageview"  : 'com.makeramen:roundedimageview:2.2.1',
                "Android-PickerView": 'com.contrarywind:Android-PickerView:3.2.5',
                "XTabLayout"        : 'com.androidkun:XTabLayout:1.1.1',
                "status-bar-compat" : 'com.githang:status-bar-compat:0.3',
                "recyclerview-v7"   : 'com.android.support:recyclerview-v7:23.2.0',
                "crashreport"       : 'com.tencent.bugly:crashreport:latest.release',
                "crashreport-native": 'com.tencent.bugly:nativecrashreport:latest.release',
    
                "junit"             : 'junit:junit:4.12',
                "volley"            : 'com.android.volley:volley:1.0.0',
                "okhttp"            : 'com.squareup.okhttp3:okhttp:3.2.0',
                "gson"              : 'com.google.code.gson:gson:2.8.0',
                "glide"             : 'com.github.bumptech.glide:glide:3.7.0',
                "rxandroid"         : 'io.reactivex:rxandroid:1.2.1',
                "rxjava"            : 'io.reactivex:rxjava:1.3.0'
    
        ]
    }

    app(module)디 렉 터 리 에 있 는 build.gradle 파일 에서 다음 설정 을 사용 합 니 다.
    apply plugin: 'com.android.application'
    
    
    android {
    
        // android    ,       compileSdkVersion,buildToolsVersion
    
        compileSdkVersion rootProject.ext.android["compileSdkVersion"]
        buildToolsVersion rootProject.ext.android["buildToolsVersion"]
        defaultConfig {
            applicationId rootProject.ext.android["applicationId"]
            minSdkVersion rootProject.ext.android["minSdkVersion"]
            targetSdkVersion rootProject.ext.android["targetSdkVersion"]
            versionCode rootProject.ext.android["versionCode"]
            versionName rootProject.ext.android["versionName"]
            testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
        }
    
           ............
    
    dependencies {
        //      ,         libs      
        compile fileTree(include: ['*.jar'], dir: 'libs')
        androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
            exclude group: 'com.android.support', module: 'support-annotations'
        })
        testCompile rootProject.ext.dependencies["junit"]
        //              compile,           
        //    compile files('libs/open_sdk_r5788_lite.jar')
        //    compile files('libs/bottomView.jar')
        //    compile files('libs/xUtils-2.6.14.jar')
        //    //          gradle  
    
    
        //      
        compile rootProject.ext.dependencies["appcompat-v7"]
        compile rootProject.ext.dependencies["support-design"]
        compile rootProject.ext.dependencies["support-v4"]
        compile rootProject.ext.dependencies["roundedimageview"]
        compile rootProject.ext.dependencies["Android-PickerView"]
        compile rootProject.ext.dependencies["XTabLayout"]
        compile rootProject.ext.dependencies["status-bar-compat"]
        compile rootProject.ext.dependencies["okhttp"]
    
        //  bugly  
        compile rootProject.ext.dependencies["crashreport"];
        compile rootProject.ext.dependencies["crashreport-native"]
    
        //      library
        releaseCompile project(path: ':lib_sdk', configuration: 'release')
        releaseCompile project(path: ':lib_stub', configuration: 'release')
        debugCompile project(path: ':lib_sdk', configuration: 'debug')
        debugCompile project(path: ':lib_stub', configuration: 'debug')
    
    }

    이러한 방식 을 사용 하 는 장점 은 Android Support Repository 가 업데이트 되 었 을 때 gradle 파일 에 직접 힌트 를 보 여줄 수 있 고 힌트 도 있 으 며 의존 버 전 번 호 를 통일 적 으로 관리 할 수 있어 일거양득 이라는 것 이다.
       :         config.gradle,    project  build.gradle                            
      apply from : "config.gradle"
    

    추 가 된 build.gradle 의 코드 는 다음 과 같 습 니 다.
    apply from : "config.gradle"
    
    buildscript {
        repositories {
            jcenter()
            //      github       ,      ,
            //       jcenter      
        }
        dependencies {
            classpath 'com.android.tools.build:gradle:2.2.0'
            //gradle            ,      Android,     java,C++ 
            //    android   
            // NOTE: Do not place your application dependencies here; they belong
            // in the individual module build.gradle files
        }
    }
    
    allprojects {
        repositories {
            jcenter()
        }
    }
    
    task clean(type: Delete) {
        delete rootProject.buildDir
    }

    이렇게 하면 library,app 의 build.gradle 에서 의존 을 사용 할 때 위의 방식 으로 의존 할 수 있 습 니 다.

    좋은 웹페이지 즐겨찾기