使用Jitpack发布开源Java库的详细流程
作者:Stars-one 发布时间:2021-12-18 06:55:58
很久之前也写过一篇使用Jitpack发布Android开源库的文章,详见Android发布项目到jitpack的完整步骤
近来因为工作原因,又重新整理总结一些使用Jitpack的相关使用技巧,由于现在Java常用的构建工具为Gradle和Maven,所以准备分为两大部分讲解下这两个构建工具如何发布Jitpack的开源库
gradle
gradle主要讲解以Android项目为主,如果是普通的Java项目使用了gradle进行了依赖管理,那么流程是一样的,按照步骤来即可
发布流程
1.创建module
先是创建一个module,在里面实现你自己的相关代码
输入你自己想要的module名和包名,module名保留那两个省略号(改后面的名字即可)
我这里则是创建了一个update的module作为示例,如下图所示:
然后就可以在里面写自己的代码了(当然,我这里是Android的项目,可以在里面写Android的页面等代码),和平常开发一样
2.Gradle插件设置
默认各位做完了自己的开发工作,为了演示,我这里简单地写了个测试类,用来弹窗
首先,在项目的根gradle设置中增加以下代码(其实就是个打包插件):
classpath 'com.github.dcendents:android-maven-gradle-plugin:1.4.1'
在module中的gradle文件增加下面代码:
id 'com.github.dcendents.android-maven'
//这里是我自己的github账户,需要改成你自己的
group = 'com.github.stars-one'
3.项目上传github
这里不多说了,默认各位都懂用github了
4.github创建relase版本
5.发布开源库
访问jitpack的官网https://jitpack.io/,输入我们开源库的名字,找到我们的开源库,选择get it
即可发布版本
发布的版本,需要等待一段时间(最长要15分钟),由Jitpack服务器进行编译的操作,之后看到状态
6.使用
之后再gradle文件添加仓库源和依赖即可使用,可以贴心一点把此引用技巧补充到项目的readme.md
文件中,这样便大功告成!
关于多模块moudle
上面演示只是试了一个项目中存在单个module的情况,但是有时候我们一个项目可能分了几个module,这几个module之间有一个是必须的,而其他则是可选的,你们这个时候应该如何操作呢?
答案很简单,和上述的操作是一样的
但是之后,在Jitpack发布成功后,你得手动去看下log日志,来确定版本号
查看log直接翻到末尾处,可以查看到module
之后引用就不用多说了吧
implementation 'com.github.stars-one.android-component-libray:update:0.2'
implementation 'com.github.stars-one.android-component-libray:webviewBase:0.2'
PS:这里需要注意,有多个module后,不要自以为之前那种方式是一次性引入全部依赖的,如下所示
//这样依赖,项目中不会报错,但是无法使用具体的类的(即引用无效)
implementation 'com.github.stars-one.android-component-libray:0.2'
maven
上面主要是讲解的了Gradle项目,再来补充下Maven项目
Maven相对于Gradle来说,就比较简单了,只要你新建的是一个maven项目,上传到github之后,按照上述的操作进行发布即可
但是,为了方便使用,我们需要配置下只pom.xml,设置主要为了可以看注释文档和源码,
pom.xml配置如下:主要是配置了下插件即可
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.2</version>
<configuration> <!-- Compile java 7 compatible bytecode -->
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
<plugin> <!-- Create sources.jar -->
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<executions>
<execution>
<id>attach-sources</id>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
<artifactId>maven-javadoc-plugin</artifactId>
<executions>
<execution>
<id>attach-javadocs</id>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugins>
</build>
需要注意的是:最后使用Jitpack发布的时候,包名是com.github.stars-one,不会使用在pom.xml中定义的包名和版本号,如下面两个截图可以说明:
关于多模块module
多模块的话,其实和单module有些类似,这里就不过多展开
不过,官方给的示例中,明确了可以直接导入所有所有依赖
官方实例项目
单module jitpack/maven-simple: Example Maven project demonstrating the use of
多module jitpack/maven-modular: Example multi-module Maven project
参考
Building :: Documentation for JitPack.io
小记多lib module上传JitPack_chidh的博客-CSDN博客
来源:https://www.cnblogs.com/stars-one/p/15871077.html


猜你喜欢
- 1.char数组(字符数组)->字符串可以通过:使用String.copyValueOf(charArray)函数实现。举例:char
- 本文实例讲述了Java后台线程操作。分享给大家供大家参考,具体如下:一 点睛有一种线程,它是后面运行的,它的任务是为其他线程提供服务,这种线
- 本文实例为大家分享了Android PickerScrollView滑动选择控件的具体使用代码,供大家参考,具体内容如下先看一下效果图1.S
- 经常有同学问到,使用Android能不能开发游戏呢?能开发那些游戏呢?由于操作系统和开发语言局限,一般开发安卓手机游戏,我们很少使用其自带语
- 很多情况下sql不好解决的多表查询,临时表分组,排序,尽量用java8新特性stream进行处理使用java8新特性,下面先来点基础的Lis
- EL全称 Expression Language(表达式语言),是jsp2.0最重要的特性之一,可以利用EL表达式来访问应用程序中的数据,来
- 我们已经尝试去定义类。定义类,就是新建了一种类型(type)。有了类,我们接着构造相应类型的对象。更进一步,每个类型还应该有一个清晰的接口(
- 一、idea打包项目第一步点击右边maven第二步点击compile,编译代码,编译成功后(双击运行)第三步点击package,打包代码二、
- 一直使用的是FastJson,感觉还不错,很方便。看了一段别人的分析,觉得很有道理。为什么要使用Fastjson,其实原因不需要太多,喜欢就
- 一、Vitamio介绍 1.1 Vitamio是什么? Vit
- 本文实例为大家分享了C#实现文件上传与下载的具体代码,供大家参考,具体内容如下C#实现文件上传代码: public ActionResult
- 前言之前有做个一个自定义报表的查询,这里使用的是一个动态的sql拼接,是前端选择了什么指标就查询什么信息!(这里的指标是多个表的字段,前端随
- 如何使用 Jetpack Compose 创建翻转卡片效果介绍在电子商务和银行应用程序中输入卡信息是很常见的情况。我认为让用户更轻松地处理这
- 在本文中,我们将介绍二进制搜索相对于简单线性搜索的优势,并介绍它在 Java 中的实现。1. 需要有效的搜索假设我们在wine-sellin
- JsonTools.java package com.lihua.json.tools;import net.sf.json.JSONObj
- 范例说明Android的Widget,有许多是为了与User交互而特别设计的,但也有部分是作为程序提示、显示程序运行状态的Widget。现在
- 本文实例为大家分享了android序列化过程Parcelable的具体代码,供大家参考,具体内容如下直接上代码:注释都写的很清楚了。publ
- 本文实例讲述了Android基于DialogFragment创建对话框的方法。分享给大家供大家参考,具体如下:/** * 使用DialogF
- Volley 是一个 HTTP 库,它能够帮助 Android app 更方便地执行网络操作,最重要的是,它更快速高效。我们可以通过开源的
- 在C#中,如果在方法参数前面加上ref关键字,说明参数传递的是引用,而不是值。如何理解呢?参数是简单类型的例子static void Mai