展开
拓展 关闭
订阅号推广码
GitHub
视频
公告栏 关闭

脚本插件、内部插件、第三方插件

  • 插件的作用
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

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 方式
posted @ 2022-08-02 16:10  DogLeftover  阅读(208)  评论(0编辑  收藏  举报