wiki:gradle

Version 8 (modified by liaojiaohe, 12 years ago) (diff)

--

参考

gradle中英文  http://gradle.org/  http://doc.gradle.cn/wiki/gradle-main?hl=main

项目转换为gradle  http://tools.android.com/tech-docs/new-build-system/intellij_to_gradle
gradle android 详细说明  http://tools.android.com/tech-docs/new-build-system/user-guide

常用配置

apply plugin: 'java': 指定项目为java项目
apply plugin: 'android' 指定为android项目 apply plugin: 'android-library':增加android库项目

常用命令

gradle -q quite模式,出错才输出

gradle tasks --all 列出所有任务

gradle projects 列出当前目录下所以项目

gradle :app:tasks 例如 gradle test:assemble 运行test项目assemble任务,相关前置任务会检查一次

例子

以聚超值为例子,因为要多个项目构成,需要settings.gradle 这个文件 , 参考

settings.gradle

include ':pcgCommon', ':Juchaozhi'

local.properties ,用于配置sdk.dir

sdk.dir=/Volumes/DATA/tools/android-sdk-macosx

root项目下有两个项目 pcgCommon和Juchaozhi
root 项目build.gradle

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:0.12.+'

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        jcenter()
    }
}

pcgCommon build.gradle

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:0.12.+'
    }
}

apply plugin: 'android-library'


android {
    compileSdkVersion 17
    buildToolsVersion = 20

    sourceSets {
        main {
            manifest.srcFile 'AndroidManifest.xml'
            java.srcDirs = ['src']
            resources.srcDirs = ['src']
            aidl.srcDirs = ['src']
            renderscript.srcDirs = ['src']
            res.srcDirs = ['res']
            assets.srcDirs = ['assets']
        }

        instrumentTest.setRoot('tests')

        debug.setRoot('build-types/debug')
        release.setRoot('build-types/release')
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: '*.jar')
}

juchaozhi 项目build.gradle

apply plugin: 'android'

android {
    compileSdkVersion 17
    buildToolsVersion = 20
    useOldManifestMerger true
    
    sourceSets {
        main {
            manifest.srcFile 'AndroidManifest.xml'
            java.srcDirs = ['src']
            resources.srcDirs = ['src']
            aidl.srcDirs = ['src']
            renderscript.srcDirs = ['src']
            res.srcDirs = ['res']
            assets.srcDirs = ['assets']
        }


        instrumentTest.setRoot('tests')

        debug.setRoot('build-types/debug')
        release.setRoot('build-types/release')
    }

  lintOptions {  
      abortOnError false  
  } 
}

dependencies {
    compile fileTree(dir: 'libs', include: '*.jar')
    compile project(':pcgCommon')
}

要注意有些旧项目的AndroidManifest.xml不符合新的规范要加上 useOldManifestMerger true 这个参数

lintOptions {

abortOnError false

}

检查的时候有问题也跳过