1、创建android 主工程, Name:PluginDemo,Package name:com.jiang.puginDemo 。
2、创建一个新的module,可以选择phone&Tablet Module,像创建一般的modlue ,如 name:firstPlugin。
3、把module 的 java 文件名改为 groovy ,res 删除,新建resources-> META-INF ->gradle-plugins 文件夹。
在gradle-plugins 里添加.properties文件,文件名字自己定义。
4、把myfirstplugin module 文件下的build.gradle中的内容删除掉,添加编写plugin 需要的相关依赖。
apply plugin: 'groovy'
apply plugin: 'maven'
dependencies {
//gradle sdk
implementation gradleApi()
//groovy sdk
implementation localGroovy()
}
repositories {
//maven 中央仓库 https://repo.maven.apache.org/maven2/
mavenCentral()
// //maven 本地仓库
// mavenLocal()
}
uploadArchives{
repositories {
mavenDeployer{
//groupId
pom.groupId = 'com.jiang.myfirstplugin'
//moduleId
pom.artifactId = 'firstplugin'
//version
pom.version = '1.0.0'
//提交到远程服务器:
// repository(url: "http://www.xxx.com/repos") {
// authentication(userName: "admin", password: "admin")
// }
//本地的Maven地址设置为E:/repos
repository(url: uri('E:/repos'))
//本地的maven地址 当前项目下的repository
// repository(url: uri('../repository'))
}
}
}
5、在module的groovy->包名下填加文件FirstPlugin.groovy文件,并编写测试代码。
package com.jiang.myfirstplugin
import org.gradle.api.Plugin
import org.gradle.api.Project;
/**
* Time:2020/11/16
* Author:
* Description:
*/
class FirstPlugin implements Plugin<Project>{
@Override
void apply(Project project) {
System.out.println("===================")
System.out.println("第一个插件!")
System.out.println("===================")
}
}
6、properties 中添加声明 implementation-class= 包名+类名,这里声明相当里入口,后面再添加groovy 文件就不需要申明了。
//自定义的类,注意全包名+类名
implementation-class=com.jiang.myfirstplugin.FirstPlugin
clipboard.png
或者暂时把maven 放在项目下,可以方便在查看。
clipboard.png
7、使用下面命令 执行build 中的 uploadArchives 的内容,会生成jar包并且再上传到本地的maven库。
8、在项目最外层的build.grade中添加如下代码。
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
google()
jcenter()
//1、maven地址
maven {
url uri('E:/repos')
}
}
dependencies {
classpath "com.android.tools.build:gradle:4.0.1"
//2、插件路径
//格式 group.module:version
classpath "com.jiang.myfirstplugin:firstplugin:1.0.0"
}
}
//3、调用plugin 也可以想其它调用的地方调用,类似于apply plugin: 'com.android.application'
//为resources/META-INF/gradle-plugins下的properties文件名称
apply plugin: 'com.jiang.firstPlugin'
allprojects {
repositories {
google()
jcenter()
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
9、点击 build ->make project。
会看到底部窗口窗口打印 。
clipboard.png
网友评论