上传jar到github仓库,作为maven依赖存储库

记录上传maven依赖包到github仓库问题

  • 利用GitHubPackages作为依赖的存储库
    • 踩坑1 仓库地址问题
    • 踩坑2 Personal access tokens
    • 正确姿势
      • 一、创建一个普通仓库,比如我这里是fork的腾讯Shadow到本地。地址是:https://github.com/dhs964057117/Shadow
      • 二、生成一个Personal access tokens
        • 1.点击头像——点击settings
        • 2. 找到左侧Developer settings
        • 3. 展开点击Tokens(classic)
        • 4. 上传依赖packages

利用GitHubPackages作为依赖的存储库

背景:
最近在学习腾讯的Shadow插件框架,fork并clone开源框架到自己的仓库,做了自定义定制化修改后,准备将sdk打成jar上传到github上方便其他项目直接依赖使用。
但是之前没有在github上搭建maven仓库的经验,于是踩坑无数。

踩坑1 仓库地址问题

一开始直接新建了一个普通仓库,然后配置仓库地址,https://github.com/dhs964057117/maven-repository使用gradle Maven插件上传,直接报错Forbidden 403。

Could not PUT ‘https://github.com/dhs964057117/Shadow/com/tencent/shadow/core/transform/1.0.0/transform-1.0.0.jar’. Received status code 403 from server: Forbidden

在这里插入图片描述

然后看网上各种说因为要支持上传下载不能用https://github.com/(用户名)/(仓库)(比如我这里是https://github.com/dhs964057117/maven-repository)。
得用https://raw.github.com/dhs964057117/maven-repository,继续报错503。

Could not PUT ‘https://raw.github.com/dhs964057117/Shadow/com/tencent/shadow/core/transform/1.0.0/transform-1.0.0.jar’. Received status code 503 from server: client read error

在这里插入图片描述

然后百度又说github迁移了不是这个地址,改为:https://raw.githubusercontent.com/dhs964057117/maven-repository/main。
结果还是不行报错:
最后看到说要利用GithubPackages来作为存储库,也就是平时看到仓库里这里的packages:
在这里插入图片描述
地址要改为https://maven.pkg.github.com/dhs964057117/maven-repository/
但是仍然报错

Execution failed for task ‘:publishTransformPublicationToGitHubPackagesRepository’.
Failed to publish publication ‘transform’ to repository ‘GitHubPackages’
Could not PUT ‘https://maven.pkg.github.com/dhs964057117/Shadow/com/tencent/shadow/core/transform/1.0.0/transform-1.0.0.jar’. Received status code 422 from server: Unprocessable Entity

在这里插入图片描述
最后没办法,我直接发布到本地,然后在git push上去,结果代码是有了,但是死活拉不下来,最后放弃。

踩坑2 Personal access tokens

没有配置Personal access tokens (classic),导致没有权限,也会报错403

正确姿势

一、创建一个普通仓库,比如我这里是fork的腾讯Shadow到本地。地址是:https://github.com/dhs964057117/Shadow

二、生成一个Personal access tokens

1.点击头像——点击settings

在这里插入图片描述

2. 找到左侧Developer settings

在这里插入图片描述

3. 展开点击Tokens(classic)

在这里插入图片描述
然后生成一个密钥填进去就行,生成token的时候会提醒你保存一个密码,记得保存到本地,后面会用到。

4. 上传依赖packages

比如我这个shadow框架里人家写的maven配置是:

            maven {name = "GitHubPackages"credentials {username = System.getenv("GITHUB_ACTOR")password = System.getenv("GITHUB_TOKEN")}url "https://maven.pkg.github.com/" + "${System.env.GITHUB_REPOSITORY}".toLowerCase()}

这里name可以不改

                credentials {username = username(改成你的github用户名)password = token(刚才上面第三步最后保存的那个密码)}url "https://maven.pkg.github.com/dhs964057117/Shadow/packages/"
这里改成"https://maven.pkg.github.com/${username}(你的用户名)/${repositoryUrl}(你的仓库地址)/packages/
//后面一定要加packages
比如我这里就是:https://maven.pkg.github.com/dhs964057117/Shadow/packages/

然后publish,成功!!可以看到右边packages这里有东西了,最后效果:
在这里插入图片描述
在别的项目用到的话,配置maven地址跟上面一样
然后就可以下载了
在这里插入图片描述
不过这里有个缺陷,上面生成的那个key权限太高,可以读写你的仓库内容,也就是说你这个Key不能暴露出去,不然别人可以随意的发布修改。如果要提供给别人只能下载你的依赖,可以再生成一个Key只授予read权限即可

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/4000.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[C++ QT项目实战]----C++ QT系统实现多线程通信

前言 在C QT中,多线程通信原理主要涉及到信号与槽机制和事件循环机制。 1、信号与槽机制: 在QT中,信号与槽是一种用于对象间通信的机制。对象可以通过发送信号来通知其他对象,其他对象通过连接槽来接收信号并进行相应的处…

39岁TVB靓仔小生自曝恋情,曾沦为洗车工如今半年赚足7位数

39岁高钧贤自从2005年参加香港先生选举夺冠后,之后加入TVB拍摄过多套电视剧集,最近更有份参与《逆天奇案2》,日前他回到TVB电视城一厂与冯盈盈宣传剧集,更随即拍摄短片纪录放在网上分享,意外曝光TVB餐厅餐单&#xff0…

MFRC50001T 封装SOP-32 高性能非接触式读写芯片

MFRC50001T是由NXP Semiconductors(恩智浦半导体)生产的一款高性能非接触式读写芯片。这款芯片主要针对13.56 MHz频段的RFID(无线射频识别)和MIFARE Classic协议,支持ISO/IEC 14443 Type A标准的多层应用。MFRC50001T芯…

pve(Proxmox VE)安装i225v网卡驱动

配置pve源 备份原来的源 mv /etc/apt/sources.list /etc/apt/sources.list.bak打开文件 vi /etc/apt/sources.list将以下内容粘贴进去 deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm main contrib non-free non-free-firmwaredeb https://mirrors.tuna.tsing…

yolov5中的C3、yolov8中的C2f的【全称】和【代码】

文章目录 yolov5的C3全称yolov8的C2f全称 yolov5的C3全称 点击可找到C3模块然后查看全称:https://github.com/ultralytics/yolov5/blob/master/models/common.py全称为:CSP Bottleneck with 3 convolutions C3模块代码 class C3(nn.Module):# CSP Bott…

AI大模型探索之路-训练篇5:大语言模型预训练数据准备-词元化

系列文章目录🚩 AI大模型探索之路-训练篇1:大语言模型微调基础认知 AI大模型探索之路-训练篇2:大语言模型预训练基础认知 AI大模型探索之路-训练篇3:大语言模型全景解读 AI大模型探索之路-训练篇4:大语言模型训练数据…

DML触发器的创建

目录 触发器的创建 DML触发器的创建 语句级 DML 触发器的创建 创建触发器,当对emp数据表进行添加记录、更新记录和删除记录的时候,判断是否是工作时间段,如果不是工作时间段,不允许执行 在数据表 dept 上创建触发器&#xff…

linux支持vGPU方案

1,查询gpu型号:lspci | grep "NVIDIA\|VGA" PCI Devices 2,下载驱动 官方驱动 | NVIDIA 3,安装 sudo sh NVIDIA-Linux-x86_64-440.118.02.run -no-x-check -no-nouveau-check -no-opengl-files参数说明: …

面试:finalize

一、概述 将资源释放和清理放在finalize方法中非常不好,非常影响性能,严重时甚至会引起OOM(Out Of Memory),从Java9开始就被标注为Deprecated,不建议被使用了。 二、两个重要的队列 1、unfinalized 队列 当…

面向对象开发技术(第三周)

回顾 上一堂课主要学习了面向对象编程与非面向对象编程(面向功能、过程编程),本节课就重点来看看面向对象编程中的一个具体思想——抽象 面向对象编程的特性:1、封装性 2、继承性 3、多态性 封装:意味着提供服务接口…

基于自注意力机制的长短期记忆神经网络(LSTM-SelfAttention)的回归预测

提示:MATLAB版本需要R2023a以上 基于自注意力机制的长短期记忆神经网络(LSTM-SelfAttention)是一种用于时序数据预测的模型。这个模型结合了两个不同的结构,即长短期记忆网络(LSTM)和自注意力机制&#xff…

备考2024年小学生古诗文大会:做做10道历年真题和知识点(持续)

根据往年的安排,2024年上海市小学生古诗文大会预计还有一个月就将启动。我们继续来随机看10道往年的上海小学生古诗文大会真题,这些题目来自我去重、合并后的1700在线题库,每道题我都提供了参考答案和独家解析。 根据往期的经验,只…

【C++】类和对象⑤(static成员 | 友元 | 内部类 | 匿名对象)

🔥个人主页:Forcible Bug Maker 🔥专栏:C 目录 前言 static静态成员 友元 友元函数 友元类 内部类 匿名对象 结语 前言 本篇主要内容:类和对象的一些知识点补充,包括static静态成员,友…

STM32的Flash读写保护

参考链接 STM32的Flash读写保护,SWD引脚锁的各种解决办法汇总(2020-03-10)-腾讯云开发者社区-腾讯云 (tencent.com)https://cloud.tencent.com/developer/article/1597959 STM32系列芯片Flash解除写保护的办法 - 知乎 (zhihu.com)https://zh…

调度问题变形的贪心算法分析与实现

调度问题变形的贪心算法分析与实现 一、问题背景与算法描述二、算法正确性证明三、算法实现与分析四、结论 一、问题背景与算法描述 带截止时间和惩罚的单位时间任务调度问题是一个典型的贪心算法应用场景。该问题的目标是最小化超过截止时间导致的惩罚总和。给定一组单位时间…

【AIGC调研系列】大型语言模型如何减少幻觉生成

在解读大型语言模型(LLMs)中的长格式事实性问题时,我们首先需要认识到这些模型在生成内容时可能会产生与既定事实不一致的情况,这种情况通常被称为“幻觉”[2][3]。这种现象不仅可能导致信息的误传,还可能对社会造成误…

使用nssm把批处理(.bat)文件设置为Windows 服务

本文以canal为例 使用nssm把批处理(.bat)文件设置为Windows 服务 下载 nssm: 前往 nssm 官方网站 下载适用于系统的 nssm 工具。 安装 nssm: 将下载的 nssm 压缩文件解压缩到一个合适的位置,如 D:\nlc\6.Canal-1.1.5\nssm-2.24\win64\nss…

深度学习运算:CUDA 编程简介

一、说明 如今,当我们谈论深度学习时,通常会将其实现与利用 GPU 来提高性能联系起来。GPU(图形处理单元)最初设计用于加速图像、2D 和 3D 图形的渲染。然而,由于它们能够执行许多并行操作,因此它们的实用性…

kafka启动报错(kafka.common.InconsistentClusterIdException)

文章目录 前言kafka启动报错(kafka.common.InconsistentClusterIdException)1. 查找日志2. 定位问题/解决 前言 如果您觉得有用的话,记得给博主点个赞,评论,收藏一键三连啊,写作不易啊^ _ ^。   而且听说点赞的人每天的运气都不…