Android Gradle 插件(一)
自定义插件
-
- 新建 Android 工程
-
- 创建新的 Java Module
-
- 在 模块的 build.gradle 文件中添加
apply plugin: 'groovy'dependencies {implementation gradleApi()implementation localGroovy()
}
-
- 将 src/main/java 修改为 src/main/groovy
-
- 在groovy文件夹下创建包及*.groovy文件
package com.mazaiting
import org.gradle.api.Plugin
import org.gradle.api.Projectclass Pgyer implements Plugin<Project> {@Overridevoid apply(Project project) {// 创建任务project.task("hello") {doLast {println "finish"}}}
}
-
- 在 src/main 下创建resources/META-INF/gradle-plugins文件夹
-
- 在gradle-plugins文件夹下创建*.properties文件, 后面的
com.mazaiting.Pgyer
为自定义类的全路径名
- 在gradle-plugins文件夹下创建*.properties文件, 后面的
implementation-class=com.mazaiting.Pgyer
-
- 文件模块路径
-
- 在 build.gradle 增加 maven 插件
//导入maven插件
apply plugin: 'maven'//发布代码到本地
uploadArchives {repositories {mavenDeployer {repository(url: uri('../repo'))//仓库路径,此处是项目目录下的repo文件夹pom.groupId = 'com.mazaiting.plugin'//groupid自行定义,一般是包名pom.artifactId = 'pgyer'//自行定义pom.version = '1.0.0'//版本名称}}
}
-
- 同步后, 上传本地 maven 库
./gradlew uploadArchives
-
- 在项目根目录下新增 repo 文件夹, 文件目录文件如下
使用
-
- 在项目根目录下的 build.gradle 文件中添加
// Top-level build file where you can add configuration options common to all sub-projects/modules.buildscript {repositories {// ...// maven 本地库maven {url uri('repo')}}dependencies {// ...// 自定义插件classpath 'com.mazaiting.plugin:pgyer:1.0.0'}
}allprojects {repositories {// ...// maven 本地库maven {url uri('repo')}}
}
-
- 在 app/build.gradle 文件中新增
apply plugin: 'com.mazaiting'
-
- 执行新增任务
./gradlew hello