接前文 gradle自定义plugin的几种方式 属于 groovy语言实现。这次记录java实现的方式
新建java porject在build.gradle接入插件
1 2
| apply plugin: 'java-gradle-plugin' apply plugin: 'maven-publish'
|
依赖
1 2 3
| dependencies { implementation "com.android.tools.build:gradle:4.1.3" }
|
声明插件实现
1 2 3 4 5 6 7 8 9
| gradlePlugin { plugins { shadow { id = "shadow.plugin"//别的工程通过apply plugin引入的id //继承自Plugin的class,入口类 implementationClass = "fu.wanke.plugin.MyClass" } } }
|
本地发布
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| publishing { repositories { maven { // $rootDir 表示你项目的根目录 // 这里配置发布到的本地目录 url = "$rootDir/repo" } }
publications { maven(MavenPublication) {
// 插件的组ID,建议设置为插件的包名 groupId = 'fu.wanke.plugin' // 插件的名字,后续在引用时会用到 artifactId = 'shadPlugin' version = '1.0.0' // 组件类型 from components.java } } }
|
配置完成通过命令 ./gradlew publish 即可发布插件到本地仓库
使用:
- 项目根目录的build.gradle文件引入本地仓库:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| buildscript { repositories { google() jcenter()
maven {// 添加Maven的本地依赖 url uri('./repo') } } dependencies { //我们自定义的插件 classpath "fu.wanke.plugin:shadPlugin:1.0.0" classpath "com.android.tools.build:gradle:4.1.3"
// NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files } }
|
- 在项目的build.gradle文件里面引入插件
1
| apply plugin: 'shadow.plugin'
|