Umb
Articles6
Tags8
Categories0
使用Jitpack快速发布自己的开源库

使用Jitpack快速发布自己的开源库

使用JitPack平台快速发库

由于最近在开发一个小的Java后端项目,然后发现Java没有特别好用的标准化HttpResult响应状态库,只能靠自己封装来使用,因此花了十分钟写完了这个库。突发奇想想把这个库开源,然后以后就可以通过远程依赖来直接调用这个库,于是我找到了jitPack这个平台

步骤

  1. Gradle配置

    JitPack会采用Maven Install 命令对项目打包,因此如果你使用的是Gradle,则需要引入Maven依赖

    plugins {
    	...
        id 'maven'
    }
    注意:Gradle 7.x以及以后的版本不支持Maven依赖,改为了maven-publish依赖,这个依赖博主没有细致研究,因此如果不想折腾的话建议更换为Gradle 6.x或以下版本
  2. 将你的项目发布到Github公开仓库中

    这里不多赘述(既然你看到了这篇博客,那么你应该会这一步)

    需要注意的是,在push到Github仓库的时候,需要带版本Tag,你可以在IDEA的Git Log中快速添加版本tag

  3. 使用Github账号登录JitPack控制台

  1. 在JitPack中查看你的仓库

    在releases下查看是否有你刚才提交上来的版本,如果有,一般来说JitPack的CI会自动编译打包你的项目,如果没有编译,可以直接点击一下Get it,

  2. 如果配置正确的话,等待它编译成功后,就可以使用Gradle或Maven工具直接引入你的库了,JitPack下面就会有提示你如何添加你的远程仓库到你的包管理器中

踩坑

一般情况下,只要配置正确就可以成功,但是偏偏就是会遇到不少坑……

  1. 项目编译环境与JitPackCI编译环境不同:

    JitPackCI采用的是Java8的编译环境,而且它的Gradle只支持7.0以下的版本,因为JitPack打包使用的是gradlew install 命令,其实本质上也是maven install命令,而Gradle7.x版本取消了对maven依赖的支持,因此推荐将项目更改为Java8和Gradle7.0以下的版本,以避免CI爆炸

    也许有更好的解决方案,但是通过我对官方文档和Google的一翻搜寻,我是一无所获,只能这样解决

  2. Could not publish configuration ‘archives’, Cannot publish artifact ‘xxxxxx.jar’ as it does not exist.

    这是一个玄学问题,install命令运行的时候会尝试搜寻已有的lib中的xxxx.jar,也就是打包好的文件(但是我们的目的就是用install打包啊喂(#`O′)),这个坑卡了很久,最后用暴力解决了:

    在gradle配置文件中加一个这个配置即可解决

    jar {
        enabled = true
    }
  3. 运行install命令后总是会生成一个带后缀名xxxx-plain.jar的包:

    玄学问题,建议重开项目,至少我是一头雾水,网上也没有相关的资料解释这个现象,至少我是在完全相同的版本、完全相同的代码、完全相同的Gradle配置下,新开了一个项目,这个问题就解决了,很寄,

    明明环境一样,为什么这样就可以跑.jpg

Author:Umb
Link:https://umb.ink/2021/10/27/%E4%BD%BF%E7%94%A8Jitpack%E5%BF%AB%E9%80%9F%E5%8F%91%E5%B8%83%E8%87%AA%E5%B7%B1%E7%9A%84%E5%BC%80%E6%BA%90%E5%BA%93/
版权声明:本文采用 CC BY-NC-SA 3.0 CN 协议进行许可