Android Gradle 插件(一)
Android Plugin DSL Reference
自定义插件
- 新建 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.Project
class Pgyer implements Plugin<Project> {
@Override
void 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
网友评论