• 使用Jitpack发布开源Java库


    本文为作者原创,转载请注明出处,谢谢配合
    作者:stars-one
    链接:https://www.cnblogs.com/stars-one/p/15871077.html

    本篇大约有2966个字,阅读预计需要3.71分钟


    原文:使用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有些类似,这里就不过多展开

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

    官方实例项目

    参考

  • 相关阅读:
    hadoop3.x学习(一)--安装与环境配置
    HCIA --- ACL(访问控制列表)
    轻松掌握组件启动之MongoDB(上):高可用复制集架构环境搭建
    (四)线性插值
    【ECMAScript6】Promise
    天软特色因子看板 (2023.10 第05期)
    华为机试 - 学生方阵
    Cadence OrCAD Capture 原理图设计过程产生的文件总结与说明
    【Linux系统化学习】探索进程的奥秘 | 第一个系统调用
    mongodb安装、mongodb-tools安装(此处为windows)、配置环境变量、启动、导入数据
  • 原文地址:https://www.cnblogs.com/stars-one/p/15871077.html