zoukankan      html  css  js  c++  java
  • Gradle使用的简单了解

    Gradle 认识

    参考博客:http://www.enjoytoday.cn/categorys/Gradle

     gradle是一个用于构建工程的工程配置脚本,它可以很便捷的帮助我们构建管理工程结构,使得我们的工程结构根据可读、可维护性。由于gradle的核心是Groovy,所以gradle的主战场在对于java项目的构建。接下来,我就简单就gradle在构建android项目做一个介绍。
    
     目前,android开发大多已经转移到Android studio开发工具开发上来了,而android studio则是通过gradle构建的工程管理,android studio将模块分为两大类别,一个是project,一个是module,project 用于管理子工程的基本gradle属性,如gradle的脚本版本、仓库类型、自定义仓库地址、和一些子module通用配置,可以自由发挥。同时project也负责将真正需要构建的源码工程配置导入进来,其主要配置在setttings.gradle中完成,子module则是通过子moudle导入的主目录下build.gradle配置基本结构信息和依赖信息进行管理,整个结构相对比较简单,结构如下所示:
    
    project-
           -build.gradle                 #project 基本gradle配置,如版本信息、仓库类型等
           -settings.gradle              #子工程配置脚本,指定子工程位置
           -build                        #编译输出
           -.gradle                      #编译配置相关
           -gradle                       #编译配置相关
           -gradle.properties            #编译配置相关
           -local.properties             #配置基本编译参数,SDK,NDK等
           -gradlew                      #编译环境搭建
           -gradlew.bat                  #编译环境搭建   
           -moudle--                     #子工程
                  --build.gradle         #编译配置脚本,主要的工程编译控制脚本
                  --build                #编译输出
                  --...
    

    主要结构就是这些,对于我们开发者而言其实只需要关注三个文件就可以了:
    1)project .build.gradle:控制gradle编译版本可依赖仓库配置,常见的模式如下:

    buildscript {             //配置编译脚本依赖版本,采用的是gradle wrapper
        repositories {
            jcenter()      //配置依赖库路径(构建脚本或者其他共用资源依赖库版本),
                           //android studio默认使用的是jcenter库,一个maven库,你自己也可以指定仓库地址
        }
        dependencies {
            classpath 'com.android.tools.build:gradle:2.2.3'      //gradle版本
            // NOTE: Do not place your application dependencies here; they belong
            // in the individual module build.gradle files
        }
    }
    
    allprojects {                        //子工程通用配置
        repositories {                  
            mavenCentral()              //依赖配置,采用的是maven中央仓库,可以指定
        }
    }
    
    task clean(type: Delete) {        //clean 任务,清除更新之前的配置输出.
        delete rootProject.buildDir     
    }

    2)project.settings.gradle:控制子module构建

    include ':app', 'app2'  //导入子module,默认子module在project主目录下,module名为目录名,也可自定义module地址
    
    //如下,配置自定义路径moudule
    include(':test)
    project(':test').projectDir = new File('moudleRoot/test')   //和java用法类似,指定file.

    3)project.module.build.gradle:module工程管理脚本,包括基本的依赖、编译模块控制等,这是核心。

    apply plugin: 'com.android.application'      //导入插件
    
    android {                                 //android基本配置模块
        compileSdkVersion 25                  //sdk编译版本
        buildToolsVersion "25.0.2"            //编译工具版本(aapt之类)
    
    
        defaultConfig {                    //默认配置,如applicationId、versionCode、versionName等通用配置。
            applicationId "www.enjoytoday.cn"
            minSdkVersion 19
            targetSdkVersion 25
            versionCode 1
            versionName "1.0"
            testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"     //junit测试,可以选择要或者不要
        }
        buildTypes {            //编译类型,默认两种编译类型,debug和release区别版本信息,可在各个版本类型中作区别配置
            release {
                minifyEnabled false
                proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            }
    
            debug{
               ..........
            }
        }
    
    
        //版本控制,一般用于多渠道打包
         productFlavors{
    
            umeng{
    
            }
            baidu{
    
            }
        }
    
            sourceSets{               //目录结构配置,注意除了manifest位string外,其他的均为list类型,可配置多个源
            main{
                java.srcDirs ['src/main/java']
                res.srcDirs  ['src/man/res']
                aidl.srcDirs ['src/main/java']
                renderscript.srcDirs =  ['src/main/java']
                assets.srcDirs = ['src/main/assets']
                jniLibs.srcDirs = ['libs']            //需要添加so依赖时,需要指定的so路径
                manifest.srcFile 'AndroidManifest.xml'
            }
    
        }
    }
    
    repositories {            //添加一个本地仓库,指定aar路径,也可以在project的build.gradle中指定
        flatDir {
            dirs 'libs'
        }
    }
    
    
    dependencies {             //工程依赖库
        compile fileTree(dir: 'libs', include: ['*.jar'])
        compile project(':pushlibs')
        compile 'com.android.support:appcompat-v7:25.2.0'
        compile 'com.android.support.constraint:constraint-layout:1.0.2'
         compile (name:'XXXXXXX', ext:'aar')  //添加一个aar依赖
    }
    

    如上就是andorid工程相关的gradle的一个基本知识的介绍,详细使用待续…

  • 相关阅读:
    安卓-登陆页面的实现
    异常
    实用类
    Hashset
    Map
    LinkedList
    arraylist
    继承
    字符串相关代码
    数组代码
  • 原文地址:https://www.cnblogs.com/amiko/p/7906233.html
Copyright © 2011-2022 走看看