赞
踩
全称为Apache Maven,是一个软件(特别是Java软件)项目管理及自动构建工具,由Apache软件基金会所提供。
在发布maven之前,android普遍使用ant的方式进行项目的构建和管理,它们均使用XML文件来配置描述项目的,相比较于ant maven提供的功能更加强大。主要表现在以下几点:
- 使用POM的方式来管理和描述项目
- 内置了更多的隐式规则,使得构建文件更简单
- 内置了软件构建的生命周期
- 内置了依赖管理来和Repository来实现依赖管理
然而在一些中大型项目中使用Maven方式构建软件会让XML配置文件越来越大,越来越笨重,而且灵活性不够,因此,出现了gradle.
Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化建构工具。它使用一种基于Groovy的特定领域语言来声明项目设置。
很明显,Gradle的出现是为了弥补ant和maven构建方式的不足,它不是采用传统的xml文件构建方式,而是采用groovy方式来构建。具体映射到android中就是使用gradle脚本文件的构建方式。它贯穿了项目的整个生命周期,包括编译、检查、测试、打包、部署。
因此,google将gradle方式作为了android项目管理的默认方式,使用android studio创建的项目下面会默认生成build.gradle文件作为默认构建。
更多的android Gradle介绍请看:
- gradle-android
- wikipedia-gradle介绍
- ant\maven\gradle比较
在使用ant构建项目的时候我们要使用第三方库往往要下载对应的库并将其jar文件拷贝到项目文件夹下面,这样会显得很麻烦。在使用gradle构建方式以后我们只要需要一个坐标就能够引入项目库文件,例如:
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:22.1.1'
}
这个就是gradle依赖使用方式。所谓的gradle依赖就是我们提供一个坐标然后它会自动帮我们从网络上下载对应的文件,甚至我们可以在本地看到库文件的源码。
那我们到底是从哪里下载到对应的文件呢?我们通过跟踪项目文件顶级目录下面的buidle gradle文件:
allprojects {
repositories {
jcenter()
}
}
jcenter函数:
/**
* Adds a repository which looks in Bintray's JCenter repository for dependencies.
* <p>
* The URL used to access this repository is {@literal "https://jcenter.bintray.com/"}.
* The behavior of this repository is otherwise the same as those added by {@link #maven(org.gradle.api.Action)}.
* <p>
* Examples:
* <pre autoTested="">
* repositories {
* jcenter()
* }
* </pre>
*
* @return the added resolver
* @see #jcenter(Action)
*/
MavenArtifactRepository jcenter();
我们知道我们的包是从一个叫做Bintray’s JCenter repository中下载而来的,我们打开jcenter库试试,
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。