1. 首先创建一个 Android Library 建好以后改造成下面这样的结构:
TestPlugin/src/main/resources/META-INF/gradle-plugins/customPlugin.properties
上面创建 TestPlugin 的 build.gradle
plugins {
id 'java-library' // 导入java插件用于,编译打包我们的插件
id 'maven' // maven插件,用于上传插件到仓库
id 'groovy'
}
java {
sourceCompatibility = JavaVersion.VERSION_1_7
targetCompatibility = JavaVersion.VERSION_1_7
}
// uploadArchives 类型是upload,这个task不是'maven'创建的
// 而是'maven'定义了一个rule,而后由我们自己创建的,关于rule,请看后面内容
// 用于上传整个工程的jar包
//uploadArchives{
// //本地仓库的一种
// repositories{
// flatDir{ // 创建一个仓库
// name "localRepository"
// dir "localRepository/libs"
// }
// }
//}
//group = "com.kuanquan.test" // project属性
//version = "1.0" // project属性
uploadArchives {
repositories.mavenDeployer {
repository(url: uri('../repo')) // maven 本地仓库的目录,仓库名 repo
pom.groupId = 'com.app.plugin'// 分组,也可以说是仓库的目录,这里一般使用包名
pom.artifactId = 'gradleplugin'// 可以说最后一层目录,里面存的是 aar 的各种版本文件夹与库的配置
pom.version = '1.0.0' // 版本号
}
}
dependencies {
// 导入Gradle的api,要写插件,肯定要使用Gradle的api
// implementation gradleApi()
//gradle sdk
implementation gradleApi()
//groovy sdk
implementation localGroovy()
}
repositories {
mavenCentral()
}
然后上传本地 maven 仓库:
自定义的 Task 执行:
项目的 build.gradle 配置:
app 的 build.gradle 配置:
插件的编译: