一、gradle build的基本介绍
Gradle是一个基于JVM的构建工具,主要特点是灵活性和可扩展性。Gradle构建过程包含了三个阶段:初始化阶段、配置阶段和执行阶段。gradlew是Gradle wrapper,它能让一个项目的用户使用指定版本的Gradle进行编译,而不需要安装任何Gradle的版本。
二、gradle build的配置文件
Gradle的构建是由Groovy或Kotlin脚本编写的,它们是放在build.gradle文件中的。Gradle的配置文件由两部分组成:Project和Task,它们都是对象。在Gradle中,Project对象表示整个构建,并且在Gradle的配置文件中表现为根项目,而Task对象则表示Gradle构建中的一个单元。使用配置文件我们可以定义项目相关的属性,配置插件,以及定义task等。
三、gradle build中常用的task
在Gradle的配置文件中,常常会使用Gradle中的Task。Task是指构建中的一个单元。我们可以通过依赖关系来定义task,也可以通过插件来创建task。在Gradle中,内置了很多task,这里我们只介绍几个常用task。
- clean:删除构建文件夹,这个task只有一个action,即删除指定文件夹下的所有内容
- compileJava:编译Java源文件,它的依赖关系是Java源文件,Java编译器和编译输出目录。如果源文件在修改或者删除,这个task将重新运行
- test:运行单元测试
- build:执行clean、compile和test等操作
task clean(type: Delete) { delete rootDir.path + '/build' } task build(dependsOn: ['clean', 'compileJava', 'test'])
四、gradle build中的插件
插件是Gradle的一个核心概念。通过插件,users可以使用Java、Groovy、Scala等语言开发各种各样的应用。Gradle插件以Jar文件的形式出现,可以通过Gradle仓库和Maven仓库进行下载。通过使用其他人写的插件,我们可以使用一些预制的Task,或者针对一些应用场景提供的特殊功能。
buildscript { repositories { mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:2.3.3' } } apply plugin: 'java'
五、gradle build中的依赖管理
Gradle的依赖管理非常灵活,可以定义项目的依赖关系,引入第三方的jar包等等。
- 引入外部依赖:
可以使用Maven的依赖语法,通过mavenCentral或jcenter仓库来拉取外部依赖。 - 定义项目依赖关系:
在Gradle中,可以通过dependencies块和称作依赖配置(Dependency Configuration)的块来定义一个项目的依赖关系。
apply plugin: 'java' repositories { mavenCentral() } dependencies { compile 'junit:junit:4.12' compile group: 'commons-lang', name: 'commons-lang', version: '2.6' }
六、gradle build中的额外配置
在Gradle中,可以使用buildSrc目录下的build.gradle文件来定义一些额外配置,这些配置都是来增强Gradle本身的功能。比如添加一个自定义Task,构建脚本中经常会使用到,这样可以让构建逻辑的复用性更好。
plugins { id 'java' } repositories { mavenCentral() } dependencies { compile group: 'com.google.code.gson', name: 'gson', version: '2.8.5' } task prettyPrintJson(type: JavaExec) { main = "com.google.gson.JsonParser" classpath = sourceSets.main.runtimeClasspath standardInput = System.in args = [ '-n', '-i', 'src/main/resources/test.json' ] workingDir = file("$projectDir") }