Gradle插件编写(二)
一、前言
在Android
中使用自定义Gradle
插件能为我们实现一些特定的功能,这里不再进行特定的描述。本文记录下简单的自定义Gradle
插件,采用Groovy
语言编写。Gradle插件编写(四)会给出gradle
、kotlin
、java
编写的例子。
二、在build.gradle中定义插件
定义插件最简单的方式莫过于直接在build.gradle
中定义。如下:
apply plugin: GreetingPlugin
buildscript {
repositories {
谷歌()
mavenCentral()
maven { url 'https://jitpack.io' }
}
dependencies {
classpath 'com.android.tools.build:gradle:7.0.4'
classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:1.6.10'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
class GreetingPlugin implements Plugin<Project> {
void apply(Project project) {
project.task('hello') {
doLast {
println 'Hello from the GreetingPlugin'
}
}
}
}
三、buildSrc代码演示
直接在build.gradle
中定义虽然比较好,但是随着逻辑扩大,然后逻辑可读性会变差,因此需要将其单独放在一个位置,这里采用buildSrc
的方式进行定义
这里采用buildSrc
的方式创建插件。首先在项目根目录创建一个buildSrc
的文件夹。该文件夹名字不可更改。
首先创建以下目录结构
其中plugin
文件夹下面的groovy
文件名字可以起任意一个名字。plugin.properties
的文件名字可以其任何一个名字。
build.gradle
apply plugin: 'groovy'
dependencies {
//gradle sdk
gradleApi()
//groovy sdk
localGroovy()
}
编写完后build
重新构建下程序。该文件夹不需要在setting.gradle
文件夹中引用,因为gradle
是多项目构建,会自动检索所有包下面的build.gradle
文件。重新构建的化可以使接下来编写插件使用代码联想功能。下面完善其它代码
plugin.properties
implementation-class=plugin.ThreePlugin
ThreePlugin.groovy
package plugin
import org.gradle.api.Plugin;
import org.gradle.api.Project;
class ThreePlugin implements Plugin<Project> {
@Override
void apply(Project project) {
println "打印的第一种方式"
println '打印的第二种方式'
println("打印的第三种方式")
System.out.println("打印的第四种方式")
}
}
在其它位置引用插件,例如build.gradle
// Top-level build file where you can add configuration options common to all sub-projects/modules.
//使用plugin.properties中文件名的前缀plugin
//apply plugin: 'plugin'
//或者implementation-class=plugin.ThreePlugin中的plugin.ThreePlugin
apply plugin: plugin.ThreePlugin
buildscript {
repositories {
谷歌()
mavenCentral()
maven { url 'https://jitpack.io' }
}
dependencies {
classpath 'com.android.tools.build:gradle:7.0.4'
classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:1.6.10'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
然后重新构建程序,会打印出以下日志
> Configure project :
打印的第一种方式
打印的第二种方式
打印的第三种方式
打印的第四种方式
> Task :app:preBuild UP-TO-DATE
四、参考链接
- Android官方提供的自定义Gradle插件示例:
https://github.com/android/gradle-recipes
- 自定义Android Gradle插件
https://blog.csdn.net/binbinqq86/article/details/81033746
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhfifhgi
系列文章
更多
同类精品
更多
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01 -
怎样阻止微信小程序自动打开
PHP中文网 06-13