lesson 1 初识Gradle
在gradle的脚本中,存在两个比较重要的概念,那就是project
和task
。就像他们的意思一样,一个指项目,一个指任务。
Gradle使用的是groovy这个语言,这个语言和java都是用jvm,所以都可以在jvm上运行,并且完全兼容java的语法,关于groovy后面会详细讲到。
项目,其实他就是一个对象,叫做project,这个类就是org.gradle.api.Project
。
任务,在project里,就像是一个属性。
项目就相当于是maven中的pom文件一样,管理的整个项目的信息,依赖、插件、参数、子模块等等都在其中可以控制。
任务就相当于maven中的goal,是一个具体执行的命令,它可以在脚本中根据项目自由编写,来实现自定义的构建方式。
举例:下面是一个最简单的gradle的项目结构
./lesson
├── build.gradle
└── settings.gradle
项目中只有两个关于gradle的文件,settings.gradle
是关于项目的全局配置,例如项目名称,子模块等,以后会详细说明;build.gradle
是核心配置,每个项目中都会有一个,里面存放着依赖,插件等配置。
在settings.gradle
中只有一行,表示这个项目叫做lesson
rootProject.name = 'lesson'
在build.gradle
中,则是下面的内容
plugins {
id ‘java’
}
group ‘com.gradle.learn’
version ‘1.0-SNAPSHOT’
sourceCompatibility = 1.8
repositories {
mavenCentral()
}
dependencies {
testCompile ‘junit:junit:4.11’
}
逐行解释它表示含义是:
- 引入插件’java’
- 组名叫’com.gradle.learn’
- 项目版本号’1.0-SNAPSHOT’
- 源码兼容jdk1.8
- 仓库使用默认的maven中央仓库
- 依赖,测试依赖junit
在目前的配置中,会在产生什么作用呢?
在命令行中进入当前两个gradle文件所在的路径,执行gradle tasks
,命令行会打印出当前项目的所有可以执行任务
> Task :tasks
------------------------------------------------------------
Tasks runnable from root project
------------------------------------------------------------
Build tasks
-----------
assemble - Assembles the outputs of this project.
build - Assembles and tests this project.
buildDependents - Assembles and tests this project and all projects that depend on it.
buildNeeded - Assembles and tests this project and all projects it depends on.
classes - Assembles main classes.
clean - Deletes the build directory.
jar - Assembles a jar archive containing the main classes.
testClasses - Assembles test classes.
Build Setup tasks
-----------------
init - Initializes a new Gradle build.
wrapper - Generates Gradle wrapper files.
...
它表示有几类任务,Build tasks
这类任务中有下面这些任务。
如果要执行任务,可以直接运行,例如gradle build
,就可以开始构建项目了。
在结合了IDE之后,会有一些更方便的可视化操作可以进行,gradle的认识就到这里。