build.gradle详细配置分析

app的bulid.gradle文件配置详情
apply plugin: 'com.android.application'//说明module的类型,com.android.application为程序,com.android.library为库
android {
    compileSdkVersion 22//编译的SDK版本
    buildToolsVersion "22.0.1"//编译的Tools版本
    defaultConfig {//默认配置
        applicationId "com.nd.famlink"//应用程序的包名
        minSdkVersion 8//支持的最低版本
        targetSdkVersion 19//支持的目标版本
        versionCode 52//版本号
        versionName "3.0.1"//版本名
    }
    sourceSets {//目录指向配置
        main {
            manifest.srcFile 'AndroidManifest.xml'//指定AndroidManifest文件
            java.srcDirs = ['src']//指定source目录
            resources.srcDirs = ['src']//指定source目录
            aidl.srcDirs = ['src']//指定source目录
            renderscript.srcDirs = ['src']//指定source目录
            res.srcDirs = ['res']//指定资源目录
            assets.srcDirs = ['assets']//指定assets目录
            jniLibs.srcDirs = ['libs']//指定lib库目录
        }
        debug.setRoot('build-types/debug')//指定debug模式的路径
        release.setRoot('build-types/release')//指定release模式的路径
    }
    signingConfigs {//签名配置
        release {//发布版签名配置
            storeFile file("fk.keystore")//密钥文件路径
            storePassword "123"//密钥文件密码
            keyAlias "fk"//key别名
            keyPassword "123"//key密码
        }
        debug {//debug版签名配置
            storeFile file("fk.keystore")
            storePassword "123"
            keyAlias "fk"
            keyPassword "123"
        }
    }
    buildTypes {//build类型
        release {//发布
            minifyEnabled true//混淆开启
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-project.txt'//指定混淆规则文件
            signingConfig signingConfigs.release//设置签名信息
        }
        debug {//调试
            signingConfig signingConfigs.release
        }
    }
    packagingOptions {
        exclude 'META-INF/ASL2.0'
        exclude 'META-INF/LICENSE'
        exclude 'META-INF/NOTICE'
        exclude 'META-INF/MANIFEST.MF'
    }
    lintOptions {
        abortOnError false//lint时候终止错误上报,防止编译的时候莫名的失败
    }
}
dependencies {
    compile fileTree(dir: 'libs', exclude: ['android-support*.jar'], include: ['*.jar'])   //编译lib目录下的.jar文件
    compile project(':Easylink')//编译附加的项目
    compile project(':ImageLibrary')
    compile project(':ImageResLibrary')
    compile project(':Ofdmtransport')
    compile project(':PullToRefreshLibrary')
    compile project(':RecorderLibrary')
    compile project(':WebSocket')
    compile project(':WidgetLibrary')
    compile 'com.nostra13.universalimageloader:universal-image-loader:1.9.3'//编译来自Jcenter的第三方开源库
}

如果项目过大,需要统一在主工程模块中配置

如果生成独立的私有库,然后在添加依赖

我们可以在主模块中这么配置

config.gradle

//全局扩展参数
ext {

    //默认参数配置
    config = [GROUP             : "com.bulktransit.andlibrary",
              NEXUS_RELEASES    : "http://nexus.sf-express.com/nexus/content/repositories/releases/",//#发布releases版的地址
              NEXUS_SNAPSHOTS   : "http://nexus.sf-express.com/nexus/content/repositories/snapshots/",//#发布snapshots版的地址
              POM_PACKAGING     : "aar",
              POM_PACKAGING_AWB : "awb",
              NEXUS_USERNAME    : "deploy",
              NEXUS_PASSWORD    : "deploy123",
              POM_DEVELOPER_ID  : "bulktransit",
              POM_DEVELOPER_NAME: "bulktransit"
    ]

    allprojects {
        repositories {
            maven { url config.NEXUS_RELEASES }
            maven { url config.NEXUS_SNAPSHOTS }
        }
    }

    //Android编译版本管理
    android = [compileSdkVersion: 25,
               buildToolsVersion: "25.0.2",
               minSdkVersion    : 16,
               targetSdkVersion : 25,
               versionCode      : 1,
               versionName      : "1.0"]


    libsversion = [
            mvp        : "1.0.01-SNAPSHOT",//mvp基础
            unloading  : "1.0.11-SNAPSHOT",
            sorting    : "1.0.11-SNAPSHOT",
            httprequest: "1.0.11-SNAPSHOT",
            baseutils  : "1.0.11-SNAPSHOT",
            commui     : "1.0.11-SNAPSHOT",
            dbres      : "1.0.11-SNAPSHOT",
    ]

    libsname = [
            mvp        : "mvp",
            unloading  : "unloading",
            sorting    : "sorting",
            httprequest: "httprequest",
            baseutils  : "baseutils",
            commui     : "commui",
            dbres      : "dbres",
    ]

    dependencies = [
            //第三方依赖库,所有模块使用的第三方库统一配置在这里
            "appcompat-v7"        : 'com.android.support:appcompat-v7:25.3.1',
            "recyclerview"        : 'com.android.support:recyclerview-v7:25.3.1',
            /*retrofit*/
            "retrofit"            : 'com.squareup.retrofit2:retrofit:2.0.2',
            "adapter-rxjava"      : 'com.squareup.retrofit2:adapter-rxjava:2.0.2',
            "okhttp3-logging"     : 'com.squareup.okhttp3:logging-interceptor:3.4.1',
            "gson"                : 'com.google.code.gson:gson:2.+',
            "butterknife"         : 'com.jakewharton:butterknife:8.5.1',
            "butterknife-compiler": 'com.jakewharton:butterknife-compiler:8.5.1',
            "greendao"            : 'org.greenrobot:greendao:3.2.0',

            /*rxjava*/
            "rxjava"              : 'io.reactivex:rxjava:1.1.0',
            "rxandroid"           : 'io.reactivex:rxandroid:1.1.0',
            //sf公用依赖,比如工具类库,网络请求库
            "mvp"                 : "${config.GROUP}:${libsname.mvp}:${libsversion.mvp}",
            "httprequest"         : "${config.GROUP}:${libsname.httprequest}:${libsversion.httprequest}",
            "baseutils"           : "${config.GROUP}:${libsname.baseutils}:${libsversion.baseutils}",
            "commui"              : "${config.GROUP}:${libsname.commui}:${libsversion.commui}",

            //业务模块
            "unloading"           : "${config.GROUP}:${libsname.unloading}:${libsversion.unloading}",
            "sorting"             : "${config.GROUP}:${libsname.sorting}:${libsversion.sorting}"

    ]
}

//打印当前的library的版本号,编译操作者检查,根据此日志在提交的时候要核对版本正确性
ext.libsversion.each {  //调用它的each函数,只要传入一个Closure就可以了。
    println "###当前版本: ${it}"

而后在app中的build.gradle模块直接引用,比如

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile(rootProject.ext.dependencies["appcompat-v7"])
    compile(rootProject.ext.dependencies["greendao"])
}




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值