脚本插件、内部插件、第三方插件
- 插件的作用
1、可以添加任务【task】到项目中,从而帮助完成测试、编译、打包等。
2、可以添加依赖配置到项目中。
3、可以向项目中拓展新的扩展属性、方法等。
4、可以对项目进行一些约定,如应用 Java 插件后,约定 src/main/java 目录是我们的源代码存在位置,编译时编译这个目录下的 Java 源代码文件。
-
插件分类
-
脚本插件
脚本插件的本质就是一个脚本文件,使用脚本插件时通过 apply from:将脚本加载进来就可以了,后面的脚本文件可以是本地的
也可以是网络上的脚本文件,下面定义一段脚本,我们在 build.gradle 文件中使用它
# 在gradle项目的根路径下编写version.gradle文件
ext {
company= "尚硅谷" cfgs = [
compileSdkVersion : JavaVersion.VERSION_1_8
]
spring = [
version : '5.0.0'
]
}
# 在build.gradle中引入
apply from: 'version.gradle'
# 在build.gradle中新建1个任务测试
task taskVersion{
doLast{
println "公司名称为:${company},JDK版本是${cfgs.compileSdkVersion},版本号是${spring.version}"
}
}
# 命令行输入
gradle -q taskVersion
# 脚本文件模块化的基础,可按功能把我们的脚本进行拆分一个个公用、职责分明的文件,然后在主脚本文件引用,
比如:将很多共有的库版本号一起管理、应用构建版本一起管理等
- 二进制插件
二进制插件[对象插件]就是实现了 org.gradle.api.Plugin 接口的插件,每个 Java Gradle 插件都有一个 plugin id
-
导入插件的DSL写法
plugins {
id 'java'
}
- apply(map具有名参数)写法
//使用方式1:Map具名参数,全类名
apply plugin:org.gradle.api.plugins.JavaPlugin
//org.gradle.api.plugins默认导入:使用方式2
apply plugin:JavaPlugin
//核心插件,无需事先引入,使用方式3:插件的id
apply plugin: 'java'
apply (plugin: 'java') // 小括号可省略
- apply闭包写法
apply{
plugin 'java'
}
- 第三方插件
//使用传统的应用方式
buildscript {
ext {
springBootVersion = "2.3.3.RELEASE"
}
repositories {
mavenLocal()
maven {
url 'http://maven.aliyun.com/nexus/content/groups/public'
}
jcenter()
}
// 此处先引入插件
dependencies {
classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
}
}
//再应用插件
apply plugin: 'org.springframework.boot' //社区插件,需要事先引入,不必写版本号
# 如果是第三方插件已经被托管在 https://plugins.gradle.org/ 网站上,就可以不用在 buildscript 里配置
classpath依赖了,直接使用新出的 plugin DSL
// 使用 plugins DSL 方式
plugins {
id 'org.springframework.boot' version '2.4.1'
}
1.如果使用老式插件方式 buildscript{}要放在 build.gradle 文件的最前面,而新式 plugins{}没有该限制。
2.托管在网站 gradle 插件官网的第三方插件有两种使用方式,一是传统的 buildscript 方式,一种是 plugins DSL 方式