Gradle自定义插件,发布项目到jcenter

1、Gradle自定义插件

Maven Publish Plugin (4.9写法有变动)

MavenPom

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:

新版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'

猜你喜欢

转载自blog.csdn.net/zhijiandedaima/article/details/81534367