美文网首页android技术
Android_发布library到jitpack(2021版本

Android_发布library到jitpack(2021版本

作者: 信仰年輕 | 来源:发表于2021-12-07 19:44 被阅读0次

随着AS的更新(Arctic Fox 2020.3.1)Android Gradle Plugin版本 (7.0.2)的升高,原本的jitpack发布方法都会出现问题,即利用android-maven-gradle-plugin的方法,记录一下新的方法。

一、配置模块的gradle文件

通过 'maven-publish' 来设置插件:

plugins {
    id 'com.android.library'
    id 'maven-publish'
}

然后再做对应的发布参数的设置:

afterEvaluate {
    publishing {
        publications {
            // Creates a Maven publication called "release".
            release(MavenPublication) {
                // Applies the component for the release build variant.
                from components.release

                // You can then customize attributes of the publication as shown below.
                groupId = 'com.cutout.kit'
                artifactId = 'ydkit'
                version = '1.0'
            }
            // Creates a Maven publication called “debug”.
            debug(MavenPublication) {
                // Applies the component for the debug build variant.
                from components.debug

                groupId = 'com.example.MyLibrary'
                artifactId = 'final-debug'
                version = '1.0'
            }
        }
    }
}

参考官网 https://developer.android.com/studio/build/maven-publish-plugin#groovy

这里releasedebug的话,建议根据实际,每次只用一个,注掉另一个。
很简单,这样就配置完了...

二、推代码到GitHub发布版本

当然这里还有个过程,就是我们得把代码推到GitHub上,过程就不再赘述了,然后去创建库的发布版本:

对应填好参数,拉到下面发布就行了:

三、Jitpack拉取

然后到jitpackhttps://jitpack.io/)去拉取自己的项目就行了,一键操作,这里也不说了。但这个时候你会发现,报错了并没有发布成功:

提示了Android gradle plugin要求使用Java11,这个时候需要新增jitpack.yml文件:

before_install:
  - sdk install java 11.0.10-open
  - sdk use java 11.0.10-open

jdk:
  - openjdk11

好了,那就代码推上去,再走一下GitHub的发布流程,打个新版本,再去jitpack拉取一下。这个时候你会发现,诶还是有问题:

提示说库工程不能设置appId,这里是因为新建Module的时候,相应的配置会默认设置applicationId,去掉即可:


然后提交代码,重新再走个流程,你就会发现发布成功!

对应的红色log就是没发布成功,点进去就能看问题出在哪,绿色就是成功。

四、测试

好了,那就让我们来测试一下,在app模块引入相应的依赖,这里jitpack也会给对应用法提示:

相应的配置完之后你会发现,诶,连编译都编译不过...

我们回头看可以发现,现在根目录的build.gradle文件下,默认并没有生成allprojects这段配置:

allprojects {
    repositories {
        google()
        mavenCentral()
        maven { url "https://jitpack.io" }
    }
}

那没有这段配置还怎么获取到对应的仓库呢,其实新版本的gradle已经把配置移到了settings.gradle里:

所以我们把对应的jitpack地址配置进去就行了,然后运行就没问题啦。

四、多module发布

这里还有个小问题,那如果同个项目下,我的几个module都要发布呢?

其实一样的,我们只需要在对应的module下的build.gradle做上述的配置,然后一样的操作发布就行,这个时候我们可以看到jitpack的log:

Build artifacts里就会出现我们需要发布的所有库,而至于版本号的话我是直接叠加让两个库保持一致。

1.中间简化的流程可以参考:https://www.jianshu.com/p/b7552cf8983b
2.参考:https://zhujiang.blog.csdn.net/article/details/115391998
3.相关源码:https://github.com/ydstar/CutoutKit

相关文章

网友评论

    本文标题:Android_发布library到jitpack(2021版本

    本文链接:https://www.haomeiwen.com/subject/buuaxrtx.html