-
Overview
-
通俗理解gradle
不同的软件发布渠道,不同的手机型号,不同的依赖导致的繁琐工作,都可以通过Gradle解决。
Gradle是一种构建工具,可以帮你管理项目中的差异,依赖,编译,打包,部署…你可以定义满足自己需要的构建逻辑,写入到
build.gradle
中供日后复用。Grdle并不是一种编程语言,它不能帮你实现软件中的任何实际功能。
-
ant
ant可以自动化打包逻辑
-
maven
maven
可以自动化打包逻辑的同事,又能自动下载jar包。Gradle
既能干maven
的活,又能干ant
的活。Gradle
不单单是一个配置脚本,它的背后是几门语言:- Groovy Language
- Gradle DSL
- Android DSL
-
Gradle的基本构成
Project
和Task
是Gradle的两个基础概念:Project
,是指我们的构建产物(如jar
包)或实施产物(将应用程序部署到生产环境)Task
,指不可分的最小工作单元,执行构建工作
每一个构建都是由一个或多个
projects
构成的,每一个project
是由一个或多个task
构成的。 -
Gradle构建系统的组成
任何一个构建系统都是由多个构建文件组成:
- Ant由
build.xml
组成 - Maven由
pom.xml
组成 - Make由
makefile
组成 - Gradle由
build.gradle
settings.gradle
gradle.properties
构成build.gradle
构建脚本,定义了一个模块和编译用的tasks,一般是放在项目的模块中,也可以放在项目的根目录中用来作为编译结构全局设置,是必须的setting.gradle
是必须的。为了定义一个多项目构建,你需要创建一个设置文件,放在源代码的根目录,用于指定要包含哪个项目。gradle.properties
用来配置构建属性,非必须
- Ant由
-
Gradle插件
Gradle的设计理念是,所有有用的特性都由Gradle插件提供。
groovy
插件,其扩展了Java
插件,加入了编译Groovy
的依赖;war
插件实在java
插件的基础上扩充的,用来构建WAR
文件;Jetty
插件实在War
插件的基础上扩充的,语序用户将网页应用发布到一个介入的Jetty
容器里。 -
Gradle运行过程
可以通过gradle命令运行一个Gradle构建,
gradle
命令会在当前目录中查找一个叫build.gradle
的文件,这个build.gradle
文件称为构建脚本。# 创建文件build.gradle task hello { doLast { println 'Hello World!' } } # 命令行运行 > gradle -q hello # -q是quiet模式,不产生gradle的日志信息 Hello World!
此处,构建脚本
build.gradle
定义了一个独立的task
,叫做hello
,然后加入了一个action
,当命令行中运行gradle hello
, Gradle执行叫做hello
的task
,也就是执行了task
的action
,这个action
是一个包含了一些Groovy代码的闭包closure
。> gradle build
这里的build
是plugin
java
内置的任务task
,gradle clean
,gradle assemble
,gradle check
,gradle properties
同上。> gradle compile test # 实现一次调用多个`task`,`compile`, `test`会被依次调用。 > gradle dist -x test # 命令行选项-x用来排除某些任务 > gradle --continue # --continue选项,某任务调用失败后继续执行后续任务,以期发现跟多错误 > -b # -b参数用于选择其他目录的构建文件,且settings.gradle将不会生效 > -p # -b是指定脚本,-p是指定脚本所在的目录 > gradle projects # 列出子项目名称列表 > gradle tasks # 列出项目中所有任务 > gradle tasks --all # --all 列出项目中所有任务以及任务之间的依赖关系 > gradle help --task someTask # 显示指定任务的详细信息 > gradle dependencies # 列出项目的依赖列表 > gradle dependencyInsight # 查看指定的依赖 > gradle properties # 获取项目所有属性列表 > gradle --profile # 收集构建期间的信息并保存到build/reports/profile目录下,以构建时间命名 > gradle -i # INFO log > gradle -d # DEBUG log
-
Gradle仓库
Gradle会在一个
repository
里找到各种依赖文件。repository
就是文件的集合,通过group
,name
,version
整理分类。Gradle能解析出好几种不同的仓库形式,比如
maven
和ivy
,同时可以理解各种进入仓库的方法,比如使用本地文件系统或者HTTP。 -
项目属性||变量
project
对象提供了一些标准属性:project
,name
,path
,description
,projectDir
,build
,group
,version
,ant
。Gradle构建脚本中有两种类型的变量:
- 局部变量(
local
),def
- 扩展变量(
extra
)。
- 局部变量(
-
Gradle Build Language References
Gradle scripts are configuration scripts.
As the script executes, it configures an object of a particular type.
-
References
再遇gradle
猜你喜欢
转载自blog.csdn.net/The_Time_Runner/article/details/113000987
今日推荐
周排行