之前写过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.HookClaimplementationClass = "com.demo.hookplugin.HookCla"}}
}// 下边的内容一般是固定的,个人需要自己覆盖发布的url和用户名和密码,下边需要填写自己的地址和用户名密码
publishing {repositories {maven {allowInsecureProtocol = trueurl = 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。
下边是项目截图