需要准备
- 一个熟悉的 IDE 开发工具
- JDK 7及以上
- Gradle 3.2以上
Gradle 中常用插件介绍
-
Java 插件:为 Java 工程提供了编辑、测试和打包的能力,很多其它的插件都是以它为基础的。
-
War 插件:该插件是继承自 Java 插件的,它为 Web 应用程序提供了打 War 包的功能。
-
Ear 插件:该插件为 Web 应用程序提供了打 Ear 包的功能。
-
Jetty 插件:该插件继承自 War 插件,它为 Web 应用程序添加了三个主要的任务,这些任务可以把 Web 应用程序部署到内嵌的 Jetty Web 容器中。
-
Application 插件:该插件可以快速的创建一个可执行的 JVM 应用程序,并且能直接打成包含系统启动脚本的 Tar 或者 Zip 包。
-
Groovy 插件:该插件是继承自 Java 插件的,并且添加支持 Groovy 工程的构建,它的使用同 Java 插件差不多。
-
Scala 插件:该插件是继承自 Java 插件的,并且添加支持 Scala 工程的构建,它的使用同 Java 插件差不多。
-
Checkstyle 插件:为工程添加了 Checkstyle 质量检测。Checkstyle 是 SourceForge 下的项目,它提供了一个帮助 JAVA 开发人员遵守某些编码规范的工具,能够自动化代码规范检查。
-
FindBugs 插件:为工程添加了 FindBugs 质量检测。FindBugs 是一个静态分析工具,它检查类或者 JAR 文件,将字节码与一组缺陷模式进行对比以发现可能的问题。
-
PMD 插件:为工程添加了 PMD 质量检测。PMD 是一种开源分析 Java 代码错误的工具,它是通过静态分析获知代码错误。
-
JaCoCo 插件:JaCoCo 是一种分析单元测试覆盖率的工具,使用它运行单元测试后,可以给出代码中哪些部分被单元测试测到,哪些部分没有没测到,并且给出整个项目的单元测试覆盖情况百分比,看上去一目了然。
-
Eclipse 插件:该插件可以生成 Eclipse IDE 使用的工程文件,它使得项目工程可以很轻松地导入到 Eclipse 工程中。
-
IDEA 插件:该插件可以生成 IntelliJ IDEA 使用的工程文件,它使得项目工程可以很轻松地导入到 IDEA 中。
使用插件的一般步聚
Gradle 插件虽然各不相同,有的很复杂,有的非常简单,不过它们一般都具有下面五个方面的特性,所以当我们使用一个新的插件时,主要关注以下五个步聚基本就能很好的使用它了。
第一步,插件的引用
这一步没有什么可说的,所有插件的引用方法都一样,代码如下:
apply plugin: '插件名'
该脚本通常会为工程添加一些任务项和属性,通过使用这些任务和属性就能实现相关的功能了。
第二步,主要的任务
当我们在工程中引入插件后,插件会自动的为我们的工程添加一些额外的任务来完成相应的功能。
任务名称 | 所依赖的任务 | 任务类型 | 任务的描述 |
---|---|---|---|
任务名称 | 依赖 | 类型 | 描述 |
------ | ------- | ------- | ------- |
compileJava | 依赖类路径下所有的编辑任务 | JavaCompile | 使用javac来编译工程的java源文件 |
processResources | - | Copy | 将项目的资源文件复制到项目生产的class目录中 |
classes | 依赖compileJava和processResource两个任务,一些插件添加的额外编译任务 | Task | 组装产生的classes和resources目录 |
...... | ...... | ...... | ...... |
上表来自“Java”插件中的任务列表,它详细的介绍了所有任务的功能,以及每个任务的类型和所依赖的任务。
当然这些任务之间也有依赖关系,这就形成了任务的生命周期,如下图所示。
enter image description here上图来自“Java”插件中的任务生命周期。
说明:Gradle 中的任务依赖关系是很重要的,它们之间的依赖关系就形成了构建的基本流程。比如上图想执行
assemble
任务,就会依次运行compileJava -> processResources -> classes -> jar -> assemble这样的任务流程来完成工程的归档。
第三步,工程目录结构
一些插件对工程目结构有约定,所以我们一般遵循它的约定结构来创建工程,这也是 Gradle 的“约定优于配置”原则。
目录 | 意义 |
---|---|
src/main/java | java源文件 |
src/main/resources | 项目资源文件 |
src/test/java | 测试源文件 |
...... | ...... |
上表来自“Java”插件中工程的目录结构,我们如果要使用 Java 插件就应该按照它约定的目录结构设置,这样能大大提高我们的效率,当然各目录结构也可以自己定义,具体如何定义我将在接下来的“Java插件详细介绍”一节中具体介绍。
第四步,依赖管理
插件通常会为工程中的一些任务或者资源集合( source set )添加依赖的任务。具体可以看下一章中“定义一个新的资源集合”一节的内容。
第五步,常用的属性
当我们在工程中引入插件后,插件有时也会为工程添加一些常用的属性来帮助我们修改插件的各配置。
属性名称 | 类型 | 默认值 | 描述 |
---|---|---|---|
compile | - | - | 编译时的依赖 |
compileOnly | compile | - | 仅在编译时的依赖,不在运行时依赖 |
compileClasspath | compileOnly | compileJava | 编译类路径,在编译资源(source)时使用 |
...... | ...... | ...... | ...... |
上表来自“Java”插件中目录属性,通过这些属性可以自定义目录结构等。
通过上面对使用 Gradle 插件一般步聚的总结,我们接下来就详细的介绍 Java 插件的用法,来进一步学习 Gradle 插件的使用。由于 Java 插件是一个相当复杂的插件,也是很多插件的基础,所以花的篇幅会很长,我把它放到下一节中继续介绍吧。
小结
在本章中我们介绍了 Gradle 中常用的插件,以及总结了使用插件的一般步聚方法,希望大家能对 Gradle 中的插件有个大概的了解了,我在下章中继续介绍 Java 插件的详细用法。
网友评论