您的位置:首页 > 移动开发 > Android开发

.gradle 文件简单介绍

2015-10-24 13:43 435 查看
转自:http://ask.android-studio.org/?/article/28

一个 Android Studio 项目中,会存在多个 .gradle 文件。其中, project 目录下存在一个 build.gradle 文件和一个 settings.gradle 文件;每一个 module 会存在一个 build.gradle 文件。

本文只是简略的讲解一下默认生成的 .gradle 文件的内容,更多 Gradle Plugin 的知识,请看这里。

{@projectName}\build.gradle

buildscript {

repositories {

jcenter()

}

dependencies {

classpath ‘com.android.tools.build:gradle:1.0.0’

}

}

allprojects {

repositories {

jcenter()

}

}

默认的 project 目录下的 build.gradle 文件内容如上。

buildscript :用于设置驱动构建过程的代码。

jcenter():声明使用 maven 仓库。在老版本中,此处为 mavenCentral()。

mavenCentral() :表示依赖从 Central Maven 2 仓库中获取。

jcenter() :表示依赖从 Bintary’s JCenter Maven 仓库中获取。

3. mavenLocal() :表示依赖从本地的Maven仓库中获取。

dependencies :声明了使用 Android Studio gradle 插件版本。一般升级AS或者导入从Eclipse中生成的项目时需要修改下面gradle版本。具体的版本对应关系,请点击。

allprojects:设置每一个 module 的构建过程。在此例中,设置了每一个 module 使用 maven 仓库依赖。

在景德镇,默认的maven源可能无法访问,可以通过以下的方式设置其他的maven源。当然,你也可以设置依赖本地库。

maven {

url “http://xx.xxx.xxx/xxx

}

开源中国的源地址为:

http://maven.oschina.net/content/groups/public/

开源中国的thirdparty源地址为:

http://maven.oschina.net/content/repositories/thirdparty/

一个项目可以有好几个库。 Gradle 会根据依赖定义的顺序在各个库里寻找它们。在第一个库里找到就不会再在第二个库里进行寻找。

{@projectName}\settings.gradle

讲解10

默认的 project 目录下的 settings.gradle 文件内容如上。可有可能默认情况下, project 目录下的 settings.gradle 文件不存在,你可以自己创建。

include ‘:app’:表示当前 project 下有一个名称为 app 的 module 。

如果你的一个 module 并不是 project 根目录下,你可以这么设置。

include ‘:app2’

project(‘:app2’).projectDir = new File(‘path/to/app2’)

补充内容

关于依赖更多的补充内容如下:

dependencies {

// 引入 jar 包。

// 引用某一个特定的jar。

compile files(‘libs/xx.jar’)

// 引用libs文件夹下除xx.jar以外所有的jar。

compile fileTree(dir: ‘libs’, include: [‘*.jar’], exclude: [‘xx.jar’])

// so包在0.8版本的Android Studio中的目录更改为@{ModuleName}/src/main/jniLibs。且可以不用在此处配置so了。

// 从 maven 库中引入。

//compile ‘com.github.chrisbanes.actionbarpulltorefresh:extra-abc:0.9.2’

// 引用 lib 工程。

compile project(‘:moduleName’)

// 引用users-library。users-library作用是,在编译时使用,但是jar不会打包到apk中,由Android或Android上安装的服务提供需要的内容。

// 使用场景:

// 1. 使用Android的framework-classes.jar中的一些隐藏的API。

// 2. Google的服务框架或者其他服务框架。需要在AndroidMainFest.xml中配合uses-library使用。

provided files(‘libs/xx.jar’)

provided ‘aaa:bbb:x.x.x’

// 在测试环境下引用依赖。

// 引用jar文件。

androidTestCompile files(‘libs/xx.jar’)

// 引用Maven。

androidTestCompile ‘junit:junit:4.11’

// 在baidu productFlavors分支下引用依赖。

// 引用jar文件。

baiduCompile files(‘libs/xx.jar’)

// 引用Maven。

baiduCompile ‘aaa:bbb:x.x.x’

// 在release buildTypes分支下引用依赖。

// 引用jar文件。

releaseCompile files(‘libs/xx.jar’)

// 引用Maven。

releaseCompile ‘aaa:bbb:x.x.x’

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息