Gradle 常用小配置速查

作者: zcwfeng | 来源:发表于2020-08-16 11:14 被阅读0次

    gradle 需要配置的几个地方

    grale/wrapper/gradle-wrapper.properties
    根据升级版本来

    #Fri Oct 09 13:06:33 CST 2020
    distributionBase=GRADLE_USER_HOME
    distributionPath=wrapper/dists
    zipStoreBase=GRADLE_USER_HOME
    zipStorePath=wrapper/dists
    distributionUrl=https\://services.gradle.org/distributions/gradle-6.5-bin.zip
    

    local.properties sdk,ndk 路径

    ndk.dir=xxxx/Android/android_SDK/sdk/ndk/17.2.4988734
    sdk.dir=xxxx/Android/android_SDK/sdk
    

    gradle.properties

    org.gradle.jvmargs=-Xmx2048m
    android.useAndroidX=true
    
    # Automatically convert third-party libraries to use AndroidX
    android.enableJetifier=true
    # Kotlin code style for this project: "official" or "obsolete":
    kotlin.code.style=official
    

    gradle 头部plugin配置,两种方式

    ->apply plugin
    apply plugin: 'com.android.application'
    apply plugin: 'kotlin-android'
    apply plugin: 'kotlin-android-extensions'
    apply plugin: 'kotlin-kapt'
    apply plugin: 'dagger.hilt.android.plugin'
    
    -> plugins + id和上面是等价
    plugins{
        id 'com.android.application'
        id 'kotlin-android'
        id 'kotlin-android-extensions'
        id 'kotlin-kapt'
        id 'dagger.hilt.android.plugin'
    }
    

    Kotlin ,java8,viewbinding 支持

    compileOptions {
            sourceCompatibility JavaVersion.VERSION_1_8
            targetCompatibility JavaVersion.VERSION_1_8
        }
        kotlinOptions {
            jvmTarget = '1.8'
        }
        buildFeatures {
            viewBinding = true
        }
    

    全局配置 sdk 版本属性

    ext{
        compileSdkVersion=29
        buildToolsVersion="29.0.2"
        minSdkVersion=21
        targetSdkVersion=29
    }
    -> 项目中引用,rootProject.xxx
    android {
        compileSdkVersion rootProject.compileSdkVersion
        buildToolsVersion rootProject.buildToolsVersion
    
        defaultConfig {
            applicationId "top.zcwfeng.activityhookdemo"
            minSdkVersion rootProject.minSdkVersion
            targetSdkVersion rootProject.targetSdkVersion
            versionCode 1
            versionName "1.0"
    
        }
        ......
    }
    

    implementation,api

    implementation  只能在自己的module中使用
    api 穿透,其他moudule也可以使用,引用等
    

    配置本地artifactory 同步之后的配置速查

    // Top-level build file where you can add configuration options common to all sub-projects/modules.
    buildscript {
        repositories {
    
            maven{
                url 'http://localhost:8081/artifactory/alinyun_maven_group'
            }
            google()
            jcenter()
        }
    
        dependencies {
            classpath "com.android.tools.build:gradle:4.0.1"
    
            // NOTE: Do not place your application dependencies here; they belong
            // in the individual module build.gradle files
        }
    }
    
    allprojects {
        repositories {
    
            maven{
                url 'http://localhost:8081/artifactory/alinyun_maven_group'
            }
    
            google()
            jcenter()
        }
    }
    
    
    ext{
        compileSdkVersion=29
        buildToolsVersion="29.0.2"
        minSdkVersion=21
        targetSdkVersion=29
        androidXVersion="1.2.0"
        constraintlayoutVersion="2.0.1"
        googleAutoServiceDependency = 'com.google.auto.service:auto-service:1.0-rc7'
    
    
        extCompileOptions = {
            compileOptions {
                sourceCompatibility JavaVersion.VERSION_1_8
                targetCompatibility JavaVersion.VERSION_1_8
            }
            kotlinOptions {
                jvmTarget = '1.8'
            }
            buildFeatures {
                viewBinding = true
            }
        }
    }
    
    task clean(type: Delete) {
        delete rootProject.buildDir
    }
    

    整理一份编译加速配置,参考速查
    需要自己搭建artifactory 关于 artifactory请自行查询使用,很简单研究下就好

    // Top-level build file where you can add configuration options common to all sub-projects/modules.
    
    buildscript {
        repositories {
            maven{
                url 'http://localhost:8081/artifactory/alinyun_maven_group'
            }
            maven {
                url 'https://maven.aliyun.com/repository/google'
            }
            maven {
                url 'https://maven.aliyun.com/repository/jcenter'
            }
            maven {
                url 'https://maven.aliyun.com/repository/public'
            }
    
            google()
            jcenter()
            maven {
                url 'https://maven.google.com/'
                name 'Google'
            }
            
        }
        dependencies {
            classpath 'com.android.tools.build:gradle:4.0.1'
            
            // NOTE: Do not place your application dependencies here; they belong
            // in the individual module build.gradle files
        }
    }
    
    allprojects {
        repositories {
            maven{
                url 'http://localhost:8081/artifactory/alinyun_maven_group'
            }
            maven {
                url 'https://maven.aliyun.com/repository/google'
            }
            maven {
                url 'https://maven.aliyun.com/repository/jcenter'
            }
            maven {
                url 'https://maven.aliyun.com/repository/public'
            }
    
            google()
            jcenter()
            maven {
                url 'https://maven.google.com/'
                name 'Google'
            }
    
        }
    }
    
    ext{
        compileSdkVersion=29
        buildToolsVersion="29.0.2"
        minSdkVersion=21
        targetSdkVersion=29
        androidXVersion="1.2.0"
        constraintlayoutVersion="2.0.1"
    
    //    extCompileOptions = {
    //        compileOptions {
    //            sourceCompatibility JavaVersion.VERSION_1_8
    //            targetCompatibility JavaVersion.VERSION_1_8
    //        }
    //        kotlinOptions {
    //            jvmTarget = '1.8'
    //        }
    //        buildFeatures {
    //            viewBinding = true
    //            dataBinding = true
    //        }
    //    }
    }
    task clean(type: Delete) {
        delete rootProject.buildDir
    }
    
    

    容易忽略的gradle.properties

    useAndroidX 老项目升级过程

    org.gradle.jvmargs=-Xmx2048m
    android.useAndroidX=true
    # Automatically convert third-party libraries to use AndroidX
    android.enableJetifier=true
    # Kotlin code style for this project: "official" or "obsolete":
    kotlin.code.style=official
    

    相关文章

      网友评论

        本文标题:Gradle 常用小配置速查

        本文链接:https://www.haomeiwen.com/subject/ctjtjktx.html