gradle 插件的plugins和apply引入区别
2021-01-26 本文已影响0人
JohnYuCN
一、插件的地位
- Gradle使用插件,完成"可复用的"和“复杂的”构建管理工作。
- Todo: 后续简书完成自定义插件
二、引入插件的方式:
(一) 高版本plugins
方式:
必须在Top Level(父项目或子项目的gradle.build顶级),直接使用:
plugins{
id 'java'
id 'org.springframework.boot' version '2.4.1'
}
注意: java
是“核心插件”,而org.springframework.boot
是“社区插件”(Gradle插件中心),必须指定version
(二)遗留版本的apply
方式:
此方式又有以下几种不现的表现:
1. 与buildscript结合:
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: 'java' //核心插件,无需事先引入
apply plugin: 'org.springframework.boot' //社区插件,需要事先引入,不必写版本号
2. 父项目的subprojects
块中指定子项目中使用:
// 此处也可与buildscripts和apply plugin结合
plugins {
id 'java'
id 'org.springframework.boot' version '2.4.2'
}
//所有的子项目,都应用了以下插件
subprojects {
apply plugin: 'java' //核心插件,无需事先引入
apply plugin: 'org.springframework.boot' //社区插件,需要事先引入,不必写版本号
}
3. 子项目中直接使用:
在父项目中指定了插件的情况下(父项目中使用了plugins
或者buildscript+apply
),此时,可以直接在子项目中直接使用apply
//这是子项目的位置
apply plugin: 'java' //核心插件,无需事先引入
apply plugin: 'org.springframework.boot' //社区插件,需要事先引入,不必写版本号