在 Jitpack 上发布开源项目(基于 Gradle 8.2)

王先生
2024-06-20 / 0 评论 / 5 阅读 / 正在检测是否收录...
最近比较闲,更新了一下 android studio 版本(2023.1.1 Patch 1),默认创建的工程使用的是 gradle8.2 的版本,发布开源的 android library 和之前的(gradle 6.5)不太一样了,记录一下。

有 gradle 新老版本使用基础的,建议看省流版https://blog.1okk.com/archives/148.html

理论上 高版本 gradle 发布 jitpack 的教程本文通用。

创建工程

创建 app

正常创建即可,可以带一个 app(作为手机上测试用)。
也可以创建不带 activity 的,然后删除,在根 build.gradle 中删除引用,引用新的(新建的模块)。

创建模块

创建完工程之后按如下方法创建一个 Module
2024-06-20T01:27:30.png
2024-06-20T01:30:57.png
然后编写相关代码。

如果有 app 的话(用于手机启动界面测试模块),配置一下 app 引用 模块

ctrl+alt+shift+s 打开 project structure
2024-06-20T01:43:16.png
勾选 -> ok
2024-06-20T01:43:42.png

配置 jitpack 编译

1. 在根 build.gradle 中添加jitpack(应该不添加也行,手册上让咱加,咱加上)

新版本 gradle 配置方式稍有变化,详情看https://docs.gradle.org/current/userguide/writing_settings_files.html
打开 setting.gradle,在 dependencyResolutionManagement 中的 repositories 块中 添加 jitpack 仓库

dependencyResolutionManagement {
    ……
    repositories {
        ……
        maven {
            url "https://jitpack.io"
            allowInsecureProtocol = true // 如果 url 为 http 协议,需要添加此项;https 可不用
        }
    }
}

完整代码如下
2024-06-20T01:51:20.png

2. 修改模块(要发布的开源项目)中的 build.gradle

在 plugins 块中添加 maven-publish 插件
添加新块 afterEvaluate ,并添加调用上传代码模块(否则不会上传代码,不会生成aar)
添加上传源码的task sourceJar

plugins {
    ……
    id 'maven-publish'
}
afterEvaluate {
    publishing {
        // 当前依赖库的版本号,方便我们开发者自己查看,同时发布到 MavenLocal 也是用的这个版本号(Jitpack不会使用到)
        def versionName = "1.0.0"
        publications {
            release(MavenPublication) {
                // 自定义属性 这里头是artifacts的配置信息,不填会采用默认的
                groupId = 'net.moao.netutils' // 依赖库的 Group Id(Jitpack不会使用到)
                artifactId = 'netutils' // 依赖库的名称,单组件发布时随意填写,多组件时即为此组件的 ArtifactId(Jitpack不会使用到)
                version = versionName
                // 增加上传源码的 task
                artifact sourceJar
                // 必须有这个 否则不会上传AAR包  将bundleReleaseAar任务的单个输出文件作为发布的AAR文件。这样,该AAR文件就会成为 MavenPublication 的 artifact 并进行发布
                afterEvaluate { artifact(tasks.getByName("bundleReleaseAar")) }
            }
        }
    }
}

// 增加上传源码的task
task sourceJar(type: Jar) {
    from android.sourceSets.main.java.srcDirs
    archiveClassifier = "sources"
}

3. 创建 jitpack.yml 指定 jitpack 使用的 java 版本

高版本 gradle 在编译时对 java 版本有要求
创建一个 jitpack.yml 文件(在根目录创建),指定 jitpack 构建时使用的 java 版本,gradle8.2 对应 java 版本为jdk17,所以配置如下
jitpack.yml:

before_install:
  - sdk install java 17.0.7-open
  - sdk use java 17.0.7-open
jdk:
  - openjdk17

至此配置完毕。可以直接发布了,也可以本地测试一下,看看有什么问题。

本地测试编译

执行如下命令本地编译(./ 代表当前路径下的..)

./gradlew publishToMavenLocal

2024-06-20T02:24:16.png
编译成功没有问题,开始发布。

发布

将代码上传到 github 或者 gitee 平台(jitpack现已支持码云Gitee),这里以 Gitee 为例。
创建好仓库后,将代码上传。
在发行版 处 点击 全部
2024-06-20T02:12:37.png
填好标签、标题和表述,不需要上传文件(我们使用 jitpack 自动构建),点击创建发行版。
之后在 jitpack 官网操作发行:

  • 打开(jitpack 官网)[https://jitpack.io/],使用 github 账号就能登录。
  • 在 输入框 中输入 项目地址 或者 com.gitee.用户名/项目名(github 同理),点击look up。
  • 找到想要发布的标签,点击 get it。
  • 等待 Log 处 标志 变为 绿色就可以了。
    2024-06-20T02:21:15.png
    发布成功后,可在其他项目中引用(多项目的话方便管理),或给其他人用。
    Log 如果变为红色,则代表出问题了,点击一下可以查看日志,根据日志 修改就行

本文参考链接:
https://docs.jitpack.io/building/#android-projects
https://docs.jitpack.io/android/#publish-an-android-library
https://developer.android.com/studio/build/maven-publish-plugin
https://docs.gradle.org/current/userguide/publishing_maven.html
https://blog.csdn.net/h_bpdwn/article/details/136479903

评论 (0)

取消