GitHub上利用Jitpack构建自己的三方依赖库

前言

我想大家都对Android开发中的代码依赖或多或少有所了解(dependences),作为一名Android开发者,我也经历了从本地lib——jar包——aar——Nexus Maven的过程,其中的各种问题都经历过,从独立开发者到大厂,这个依赖的形式也在不断变化,而对于独立开发者来说,Jitpack这个工具不会用就错失了一件神器,这次起因是自己按照以前的构建方式做依赖库时发现android-maven-gradle-plugin被deprecated了,重新上路,讲一下GitHub上利用Jitpack构建自己的三方依赖库的坑。

重新上路

官方文档使用Maven Publish

解决问题如下,在library的build.gradle中最外层加入:

plugins {
    id 'com.android.library'
    id 'maven-publish'
}
...
afterEvaluate {
    publishing {
        publications {
            release(MavenPublication) {
                from components.release
                groupId = 'com.XXX.XXXXXX'
                artifactId = 'XXXXX'
                version = '1.0.0'
            }
        }
    }
}

xxx自行替换成自己项目的。

github项目release

release自己的版本

每一次改动后都重新发布release的新版本。

Jitpack上build release

Jitpack官网,登录自己的GitHub账号,输入自己的repository的名称查询(注意:仓库必须设置为public),可以看到各个版本(tag)的构建情况。

Jitpack私有库构建情况

如第一行绿色的get it才算是构建成功,其余的都不行,具体构建log可以点击进去查看。
但取经之路哪有一帆风顺?按照上面的标准流程进行构建后,出现了如下错误(就是点击那个红色的图标进入的日志):

> Configure project :
Gradle version Gradle 7.0.2

FAILURE: Build failed with an exception.

* Where:
Build file '/home/jitpack/build/app/build.gradle' line: 2

* What went wrong:
An exception occurred applying plugin request [id: 'com.android.application']
> Failed to apply plugin 'com.android.internal.application'.
   > Android Gradle plugin requires Java 11 to run. You are currently using Java 1.8.
     You can try some of the following options:
       - changing the IDE settings.
       - changing the JAVA_HOME environment variable.
       - changing `org.gradle.java.home` in `gradle.properties`.

gradleplugin要求java 11运行,目前是1.8?
好的我升级java版本,在library的build.gradle中加入:

android{
compileOptions {
        sourceCompatibility = JavaVersion.VERSION_11
        targetCompatibility = JavaVersion.VERSION_11
    }
}

git push后在GitHub上release新版本,去Jitpack上build,依然报一样的错误。
折腾了好久,也在StackOverflow上查,去GitHub上的jitpack issue#4474 (StackOverflow的解决方案也附上)上看到了解决方案:

具体解决方案

地址附上
翻译一下:就是在项目根目录新建一个jitpack.yml,内容如下:

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

jdk:
  - openjdk11

然后按照标准流程,重新git push,release新版本,jipack构建build。
大功告成。
尽情引用自己构造的三方库吧!

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容