1、Gradle自定义插件
Maven Publish Plugin (4.9写法有变动)
https://www.jianshu.com/p/d1d7fd48ff0b
源码:百度云【Gradle Plugin】
- 方法一:直接写在 build.gradle中。 (仅适用于当前moudle)
- 方法二:plugin源码放到rootProjectDir/buildSrc/src/main/groovy目录下。(仅适用于当前项目)
- 方法三:plugin打包成jar, 发布到maven仓库, 然后项目通过Build Script依赖jar的形式引入。 (公开发布,适用所有项目)
新旧maven插件对比
- 新版使用:apply plugin: ‘maven-publish’ (Gradle 1.3 +)
- 旧版使用:apply plugin: ‘maven’ (Gradle 1.0)
https://docs.gradle.org/current/userguide/publishing_maven.html (官方新)
https://docs.gradle.org/current/userguide/maven_plugin.html (官方旧)
方法二注意事项:
- 目录结构,必须是groovy,不能是java。(可以先添加java Librry类型的Module,然后将src/main/java修改为src/main/groovy)
- 插件文件格式,必须是.groovy;例如:BuildSrcPlugin.groovy
方法三注意事项:
https://blog.csdn.net/tiandiwuya/article/details/70174660
- 步骤和目录结构可以参考博客内容
- properties文件内容中指明实现类:implementation-class=com.kedacom.all.StandAlonePlugin
- 要确保插件已经发布成功,才能在项目中引入、使用插件
- 强烈建议【插件project】 和 【使用插件的project】各自独立(避免插件发布时受引用的干扰)
- 没有指定group的Task,会出现在Tasks/other目录下
2、使用Gradle发布项目到Jcenter仓库
我的bintray:
- https://bintray.com/caowj/maven
- 个人:https://bintray.com/tangnuo
- 组织:https://bintray.com/caowj
- 组织仓库:https://bintray.com/caowj/maven
新版Bintray有所变动,引入了 Organizations 的概念。
1、创建一个 Organizations:caowj
2、创建一个 repo:maven
3、执行gradlew bintrayUpload
源码:【GradlePluginPublish】
参考:
新版Bintray,如何使用Gradle发布项目到Jcenter仓库
使用Gradle发布项目到JCenter仓库
3、补充:
发布插件项目和发布lib项目原理是相同的。
3.1、如果发布的是插件项目,使用时:
1、在根build.gradle中加入:
dependencies {
classpath 'com.android.tools.build:gradle:3.1.3'
classpath 'com.kedacom.all.ynpplugin:app:1.0.0' //和发布时的命名保持一致
}
2、在APP的build.gradle中加入:
apply plugin: 'com.kedacom.all.StandAlone' //和properties文件名称保持一致
3、测试:
在Terminal中输入:gradle personInfoTask
3.2、如果发布的是lib项目,使用时:
在APP的build.gradle中加入:
implementation 'com.android.support:appcompat-v7:28.0.0-alpha3'