使用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,在里面实现你自己的相关代码

使用Jitpack发布开源Java库的详细流程

使用Jitpack发布开源Java库的详细流程

输入你自己想要的module名和包名,module名保留那两个省略号(改后面的名字即可)

使用Jitpack发布开源Java库的详细流程

我这里则是创建了一个update的module作为示例,如下图所示:

使用Jitpack发布开源Java库的详细流程

然后就可以在里面写自己的代码了(当然,我这里是Android的项目,可以在里面写Android的页面等代码),和平常开发一样

2.Gradle插件设置

默认各位做完了自己的开发工作,为了演示,我这里简单地写了个测试类,用来弹窗

使用Jitpack发布开源Java库的详细流程

首先,在项目的根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'

使用Jitpack发布开源Java库的详细流程

使用Jitpack发布开源Java库的详细流程

3.项目上传github

这里不多说了,默认各位都懂用github了

4.github创建relase版本

使用Jitpack发布开源Java库的详细流程

使用Jitpack发布开源Java库的详细流程

使用Jitpack发布开源Java库的详细流程

5.发布开源库

访问jitpack的官网https://jitpack.io/,输入我们开源库的名字,找到我们的开源库,选择get it即可发布版本

发布的版本,需要等待一段时间(最长要15分钟),由Jitpack服务器进行编译的操作,之后看到状态

使用Jitpack发布开源Java库的详细流程

6.使用

之后再gradle文件添加仓库源和依赖即可使用,可以贴心一点把此引用技巧补充到项目的readme.md文件中,这样便大功告成!

使用Jitpack发布开源Java库的详细流程

关于多模块moudle

上面演示只是试了一个项目中存在单个module的情况,但是有时候我们一个项目可能分了几个module,这几个module之间有一个是必须的,而其他则是可选的,你们这个时候应该如何操作呢?

答案很简单,和上述的操作是一样的

但是之后,在Jitpack发布成功后,你得手动去看下log日志,来确定版本号

使用Jitpack发布开源Java库的详细流程

查看log直接翻到末尾处,可以查看到module

使用Jitpack发布开源Java库的详细流程

之后引用就不用多说了吧

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中定义的包名和版本号,如下面两个截图可以说明:

使用Jitpack发布开源Java库的详细流程

使用Jitpack发布开源Java库的详细流程

关于多模块module

多模块的话,其实和单module有些类似,这里就不过多展开

不过,官方给的示例中,明确了可以直接导入所有所有依赖

使用Jitpack发布开源Java库的详细流程

官方实例项目

单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

标签:Jitpack,发布,Java库
0
投稿

猜你喜欢

  • SpringBoot访问外部文件及默认路由问题

    2021-08-12 10:58:01
  • 一文告诉你为什么要重写hashCode()方法和equals()方法

    2021-09-05 07:05:55
  • Android Spinner和GridView组件的使用示例

    2022-07-01 15:03:40
  • Spring 实现excel及pdf导出表格示例

    2023-12-21 04:17:32
  • java高并发ScheduledThreadPoolExecutor与Timer区别

    2023-08-11 03:08:29
  • C#采用递归实现阶乘的方法

    2022-12-09 09:24:56
  • c#可空类型的作用说明

    2021-12-24 18:00:49
  • Java for循环标签跳转到指定位置的示例详解

    2022-10-04 17:52:31
  • Android开发中的9个常见错误和解决方法

    2023-08-26 16:12:35
  • C# wpf简单颜色板的实现

    2022-02-11 20:08:38
  • flutter 路由机制的实现

    2021-11-18 08:28:46
  • 利用Java自写一个生成ID的工具类

    2023-04-24 04:10:08
  • java编程调用存储过程中得到新增记录id号的实现方法

    2022-06-09 02:55:52
  • Jackson 反序列化时实现大小写不敏感设置

    2021-11-18 06:17:18
  • Java8内存模型PermGen Metaspace实例解析

    2023-11-25 10:53:36
  • c#实现将pdf转文本的示例分享

    2023-07-19 14:54:23
  • java 反射调用Service导致Spring注入Dao失效的解决方案

    2021-06-30 15:47:58
  • 关于java数组与字符串相互转换的问题

    2021-08-08 18:50:31
  • Android中asset文件夹与raw文件夹的区别深入解析

    2022-11-22 01:40:34
  • Java全面解析string类型的xml字符串

    2021-06-03 21:15:18
  • asp之家 软件编程 m.aspxhome.com