原文:使用Jitpack发布开源Java库 | Stars-One的杂货小窝

很久之前也写过一篇使用Jitpack发布Android开源库的文章,详见Android开发——发布第三方库到JitPack上 - Stars-one - 博客园

近来因为工作原因,又重新整理总结一些使用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>
</plugin> <plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<executions>
<execution>
<id>attach-javadocs</id>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>

需要注意的是:最后使用Jitpack发布的时候,包名是com.github.stars-one,不会使用在pom.xml中定义的包名和版本号,如下面两个截图可以说明:

关于多模块module

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

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

官方实例项目

参考

使用Jitpack发布开源Java库的更多相关文章

  1. 【转】用JitPack发布开源库时附加文档和源码

    来自:http://www.gcssloop.com/course/jitpack-sources-javadoc 用JitPack发布开源库时附加文档和源码 很早之前写过一篇用JitPack发布An ...

  2. Android Library 发布开源库 JCenter & JitPack 攻略

    对于Android 的开源库,一般通过 JCenter 或者 JitPack 发布开源.两种方式均可~ 当你造了一个好玩有用的东西想要分享给大家时,开源出来便是一种好方式~ 一. 上传开源库到 JCe ...

  3. 我把自己的java库发布到了maven中央仓库,从此可以像Jackson、Spring的jar一样使用它了

    欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...

  4. Gradle 1.12用户指南翻译——第46章. Java 库发布插件

    本文由CSDN博客貌似掉线翻译,其他章节的翻译请参见: http://blog.csdn.net/column/details/gradle-translation.html 翻译项目请关注Githu ...

  5. 在Maven Central发布中文API的Java库

    原址: https://zhuanlan.zhihu.com/p/28024364 相关问题: 哪些Java库有中文命名的API? 且记下随想. 之前没有发布过, 看了SO上的推荐:Publish a ...

  6. 发布开源库到JCenter所遇到的一些问题记录

    这周末自己瞎折磨了下,如何发布开源库到 JCenter,然后这过程中碰到了一些问题,在此记录分享一下 本篇是基于上一篇:教你一步步发布一个开源库到 JCenter 介绍的流程.步骤中所遇到的问题,所以 ...

  7. 2017-07-20 在Maven Central发布中文API的Java库

    知乎原链 相关问题: 哪些Java库有中文命名的API? 且记下随想. 之前没有发布过, 看了SO上的推荐:Publish a library to maven repositories 决定在son ...

  8. 我的Android进阶之旅------>【强力推荐】Android开源图表库XCL-Charts版本发布及展示页

    因为要做图表相关的应用,后来百度发现了一个很好的Android开源图表库(XCL-Charts is a free charting library for Android platform.) 下面 ...

  9. 来开源吧!发布开源组件到 MavenCentral 仓库超详细攻略

    请点赞关注,你的支持对我意义重大. Hi,我是小彭.本文已收录到 GitHub · AndroidFamily 中.这里有 Android 进阶成长知识体系,有志同道合的朋友,关注公众号 [彭旭锐] ...

随机推荐

  1. [login] 调用失败 Error: errCode: -404011 cloud function execution error | errMsg: cloud.callFunction:fail requestID , cloud function service error code -501000, error message Environment not found;

    按照微信开放文档,创建完云开发项目,运行,点击获取openid,报如下错: [login] 调用失败 Error: errCode: -404011 cloud function execution ...

  2. 解读与部署(三):基于 Kubernetes 的微服务部署即代码

    在基于 Kubernetes 的基础设施即代码一文中,我概要地介绍了基于 Kubernetes 的 .NET Core 微服务和 CI/CD 动手实践工作坊使用的基础设施是如何使用代码描述的,以及它的 ...

  3. Python科学计算类库

    Numpy是什么 Numpy是一个开源的Python科学计算库.使用Numpy,就可以很自然地使用数组和矩阵.Numpy包含很多实用的数学函数,涵盖线性代数运算.傅里叶变换和随机数生成等功能. 矩阵: ...

  4. JS隐形,显性,名义和鸭子类型

    隐形转换 JavaScript中只有在一些极少数的情况下才会因为一个类型错误抛出错误.例如:调用非函数对象或者获取null / underfined的属性时,这就是隐形转换. 首先JS在遇到运算符的时 ...

  5. redis实现简易在线聊天室

    redis_flask简易聊天室 项目构建 这时一个基于Redis数据库的简单小项目,使用redis缓存数据,并通过flask部署到浏览器,运行截图如下: 输入名字后,就可以登陆到聊天室,主要包括三个 ...

  6. ansible command和shell的区别

    1.command模块不支持管道符和变量等,如果要使用这些,需要shell模块. 2.在使用ansible中的时候,默认的模块是-m command,从而模块的参数不需要填写,直接使用即可

  7. IntelliJ IDEA 热部署,修改java文件 不用重启tomcat

    详情见大佬:https://www.cnblogs.com/chenweichu/articles/6838842.html

  8. LVM搭建

    q前提:挂盘,分区.用 fdisk -l 可以查看. 使用 fdisk  /dev/sdb 分区,分区后进行partprobe使分区生效.之后进行 pv,vg,lv 的创建. pvcreate /de ...

  9. docker镜像制作Dockerfile

    使用 Dockerfile 定制镜像 从刚才的 docker commit 的学习中,我们可以了解到,镜像的定制实际上就是 定制每一层所添加的配置.文件.如果我们可以把每一层修改.安装.构建.操作 的 ...

  10. python 小兵(6)函数根据问题详解

    _list = []for i in range(3): def func(a): return i+a_list.append(func)for f in _list: print(f(1)) 首先 ...