之前写过gradle6.x和gradle7.x的插件,会有一些改动,到8.x我发现又有一些变化,记录一下,防止后边再遇到相同的情况
- 下边是插件的gradle文件配置
plugins {
id("java-gradle-plugin") //会自动引入java-library、gradleApi()
id("org.jetbrains.kotlin.jvm") //支持kotlin编写插件
id("maven-publish") //maven发布插件
}
dependencies {
implementation localGroovy()
implementation gradleApi()
implementation 'com.android.tools.build:gradle:8.3.0'
implementation 'org.javassist:javassist:3.28.0-GA'
//ASM相关依赖
implementation 'org.ow2.asm:asm:9.2'
implementation 'org.ow2.asm:asm-commons:9.2'
}
gradlePlugin {
plugins {
// 这里的hookplugin,在发布的使用需要使用publishing下的 publish 进行发布
create("hookplugin") {
// 这里在总项目的build.gradle下,classpath "com.hookapp.plugin:hookplugin:1.0.16"
group = "com.hookapp.plugin"
// id对应的值,其实就是在app下的build.gradle文件中依赖的值,使用方法是:id("applovins")
id = "applovins"
// 依赖的版本,没什么好说的
version = "1.0.16"
// 这里就是替代了原来resources下边的properties文件里面的内容,原内容是 implementation-class=com.demo.hookplugin.HookCla
implementationClass = "com.demo.hookplugin.HookCla"
}
}
}
// 下边的内容一般是固定的,个人需要自己覆盖发布的url和用户名和密码,下边需要填写自己的地址和用户名密码
publishing {
repositories {
maven {
allowInsecureProtocol = true
url = uri('http://xxxxxxxxxxxxxxxxxxxxxxxxxxxxx')
credentials {
it.username = "xxxxx"
it.password = "xxxxxxxx"
}
}
}
}
新建module完成之后,需要按照上边的进行配置,然后 点击这个module的tasks下的publishing下的 publish进行发布
任务,发布到远端
如何使用呢?
首先在项目的build.gradle中,引入
dependencies {
classpath 'com.android.tools.build:gradle:8.3.0'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion"
classpath "com.hookapp.plugin:hookplugin:1.0.16"
}
然后在app下的build.gradle中引入
plugins{
id("com.android.application")
id("kotlin-android")
id("applovins")
}
请仔细阅读,什么时候用hookplugin,什么时候用applovins。
下边是项目截图