使用gradle上传maven工件到新版maven central仓库central.sonatype.com

本文主要用到的插件是sonatype-uploader, 该插件主要功能是上传依赖文件夹到中央仓库。

该文件夹的生成也十分简单,不用担心。

前言

最近在研究maven插件的时候发现发布的网站发生了变化,使用之前的一些插件没能满足我发布依赖的需求,也可能我的使用方法不对。于是有了今天的这个插件方案。

官网在这里,可以自己研究,也可以跟着博主一步步来。
github: https://github.com/jeadyx/SonatypeUploader
gitee: https://gitee.com/jeadyx/SonatypeUploader

一、先上代码

// build.gradle.kts
plugins{`maven-publish` // 用于生成大md5,sha等文件signing // 用于生成签名文件id("io.github.jeadyx.sonatype-uploader") version "1.0" // 用于上传生成好的文件夹
}group = "io.github.jeady5"
version = "1.0"java { // 配置生成javadoc,sourceswithJavadocJar()withSourcesJar()
}publishing { // 配置发布信息,改成适合自己的publications {create<MavenPublication>("mavenTest") {artifactId = "test-library"from(components["java"])pom {name = "My Library"description = "A concise description of my library greennbg"url = "http://www.example111.com/library"properties = mapOf("myProp" to "value","prop.with.dots" to "anotherValue")licenses {license {name = "The Apache License, Version 2.0"url = "http://www.apache.org/licenses/LICENSE-2.0.txt"}}developers {developer {id = "jeady"name = "jeady"email = "jeady5@163.com"}}scm {connection = "scm:git:git://example.com/my-library.git"developerConnection = "scm:git:ssh://example.com/my-library.git"url = "http://example.com/my-library/"}}}}repositories {maven {name = "project"url = uri(layout.buildDirectory.dir("repo")) // 将要发布的文件夹生成到这个目录}}
}signing{ // 文件签名sign(publishing.publications["mavenJava"])
}sonatypeUploader {dir = layout.buildDirectory.dir("repo/io").get().asFile.pathtokenName = "your_token_user"tokenPasswd = "your_token_password"
}

二、文件夹准备

在这里插入图片描述
根据readme提示,通过maven-publishsinging插件生成预发布目录.

  1. maven-publish插件生成依赖目录结构及md5、sha文件
    配置好上面的发布信息后,执行sync,如果没有报错,则执行publishMavenTestPublicationToProjectRepository任务
    如果没报错,就可以在build文件夹中看到目录结构了
    在这里插入图片描述

  2. signing 插件生成签名文件
    除了添加signing插件块外,还需要在gradle.properties文件中添加签名信息
    该信息可由gpg工具生成。

signing.keyId=3F9FFF22
signing.password=1234
signing.secretKeyRingFile=E\:\\gpg\\jeady_0x3F9FFF22_SECRET.gpg

配置完成后,再次执行publishMavenTestPublicationToProjectRepository任务,如果没有error,则可以看到asc文件
在这里插入图片描述

  • gpg工具官网下载地址,速度还可以: 直接下载(gpg4win-4.3.1.exe)

至此maven目录准备完成

  1. 账号注册与tokenuser、tokenpasswd获取
    推荐使用github登录,不需要再添加dns txt记录就可以得到一个命名空间。
    如果你有自己的域名,按照官网引导,一步步进行dns记录验证即可。

登录后的主页右上角,点击查看账户
在这里插入图片描述
生成用户token
在这里插入图片描述
继续生成,之前生成的token将失效
在这里插入图片描述
把得到的用户名密码填写到sonatypeUploader配置块,或者使用文件gradle.properties进行保存

配置完成后就可以执行发布了,依次执行即可。
在这里插入图片描述

四、常见问题

  • 上传时提示401就是你的token不对,检查/重新生成UserToken
  • 在上传后并没有完成发布,需要执行publish才能完成发布
  • 在发布前需要检查上传的文件状态,只要配置没啥问题,一般没事
  • 发布前需要状态为 VALIDATED, 否则无法正常发布
  • 发布成功后将无法删除和撤销
  • 如果发生错误,可以在publishing查看错误信息
  • 保证group配置项和经过验证的nameSpace保持一致

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

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

相关文章

数据结构与算法笔记:实战篇 - 剖析Redis常用数据类型对应的数据结构

概述 从本章开始&#xff0c;就进入实战篇的部分。这部分主要通过一些开源醒目、经典系统&#xff0c;真枪实弹地教你&#xff0c;如何将数据结构和算法应用到项目中。所以这部分的内容&#xff0c;更多的是知识点的回顾&#xff0c;相对于基础篇和高级篇&#xff0c;其实这部…

fastapi swagger在线接口文档报错

fastapi swagger在线接口文档报错 1、报错信息 Unable to render this definition The provided definition does not specify a valid version field. Please indicate a valid Swagger or OpenAPI version field. Supported version fields are swagger: “2.0” and those …

【收藏】SaaS运营方法论:寻找合适的合作伙伴的四大方法

一、使用关键字研究工具查找您所在行业的相关博客、频道和网站 但是&#xff0c;根据你的业务规模和性质&#xff0c;如果你需要主动出击寻找合适的推广伙伴&#xff0c;而不仅限于让潜在合作伙伴找你&#xff0c;你可以使用关键字研究工具。 实话实说&#xff0c;最好的联盟营…

告别手工录入,企业财务凭证同步迈入智能新时代!

一、客户介绍 某金融租赁股份有限公司作为一家领先的金融租赁企业&#xff0c;一直秉持着创新驱动、服务至上的经营理念。随着业务的快速发展&#xff0c;该公司在财务管理和凭证管理方面遇到了新的挑战。为了更好地提升工作效率&#xff0c;降低运营成本&#xff0c;该公司决…

Spring两大核心思想 IoC和AoP

目录 ✨ 一、什么是IoC 1、定义 &#x1f38a; 2、IoC思想 &#x1f38a; 3、优势 &#x1f38a; 4、对象的管理 &#x1f38a; 存对象&#xff1a;Component 取对象&#xff1a;AutoWired ✨二、什么是DI 1、定义 &#x1f38a; 2、IoC和DI的关系&#x1f38a; 可…

嵌入式Linux系统编程 — 5.7 Linux系统中proc文件系统

目录​​​​​​​ 1 proc文件系统简介 2 proc 文件系统的使用 2.1 使用 cat 命令读取 2.2 使用 read()函数读取 1 proc文件系统简介 /proc 文件系统&#xff0c;也称为进程信息文件系统&#xff08;Process Information file system&#xff09;&#xff0c;是一种在 Li…

Windows电脑自建我的世界MC服务器并与好友远程联机游戏教程

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

08:结构体

结构体 1、为什么需要结构体2、如何定义结构体3、怎么使用结构体变量3.1、赋值和初始化3.2、结构体变量的输出 1、为什么需要结构体 为了表示一些复杂的事物&#xff0c;而普通的基本类型无法满足实际要求。什么叫结构体 把一些基本类型数据组合在一起形成的一个新的数据类型&…

高性能全局内存池

什么时候使用高性能全局内存池&#xff1f; 1.高并发下有些资源需要被频繁创建和销毁&#xff0c;我们都知道系统调用是很消耗资源的。因此&#xff0c;内存池是一块申请好的资源放在缓存里。 2.频繁使用时增加了系统内存的碎片&#xff0c;降低内存使用效率。内存分配必须起…

11083 旅游背包(优先做)

这个问题可以使用动态规划来解决。我们可以定义一个三维数组dp&#xff0c;其中dp[i][j][k]表示前i种物品&#xff0c;总体积不超过j&#xff0c;总重量不超过k的最大价值。 我们可以使用四重循环来填充这个数组。外层循环遍历所有的物品&#xff0c;第二层循环遍历所有可能的…

2024软件设计师笔记之考点版(一考就过):考试前一天 考点记忆版

软件设计师之一考就过&#xff1a;成绩版 1、栈区&#xff1a;函数调用和返回&#xff0c;由系统控制&#xff1b;存非静态局部变量&#xff1b;用栈实现嵌套调用&#xff08;递归调用&#xff09;&#xff0c;逆波兰式业绩也叫后缀式&#xff0c;用栈进行求值 2、堆区&#x…

Big Data Tools插件

一些介绍 在Jetbrains的产品中&#xff0c;均可以安装插件&#xff0c;其中&#xff1a;Big Data Tools插件可以帮助我们方便的操作HDFS&#xff0c;比如 IntelliJ IDEA&#xff08;Java IDE&#xff09; PyCharm&#xff08;Python IDE&#xff09; DataGrip&#xff08;SQL …

【RabbitMQ问题踩坑】RabbitMQ设置手动ack后,消息队列有多条消息,只能消费一条,就不继续消费了,这是为什么 ?

现象&#xff1a;我发送5条消息到MQ队列中&#xff0c;同时&#xff0c;我在yml中设置的是需要在代码中手动确认&#xff0c;但是我把代码中的手动ack给关闭了&#xff0c;会出现什么情况&#xff1f; yml中配置&#xff0c;配置需要在代码中手动去确认消费者消费消息成功&…

教学技能大赛包括哪些内容

在教育的广阔天地里&#xff0c;教师的角色至关重要。他们不仅是知识的传递者&#xff0c;更是学生心灵成长的引导者。那么&#xff0c;当教师们聚集一堂&#xff0c;参加一场教学技能大赛时&#xff0c;会有哪些内容成为他们展示自我、互相学习的舞台呢&#xff1f; 教学技能大…

瓦罗兰特报错57/error code59/报错903的解决办法

《无畏契约》在注重产品设计之预&#xff0c;也注重世界观、英雄性格的塑造&#xff0c;里面的英雄灵感来源于不同的国家和地区&#xff0c;有非常本土化的特色&#xff0c;每个英雄的性格人设非常鲜明。这些人物特色让这款游戏有了新的玩法。很多玩家都进入到游戏体验。然后有…

SeeSR: Towards Semantics-Aware Real-World Image Super-Resolution

CVPR2024 香港理工大学&OPPO&bytedancehttps://github.com/cswry/SeeSR?tabreadme-ov-file#-licensehttps://arxiv.org/pdf/2311.16518#page5.80 问题引入 因为有些LR退化情况比较严重&#xff0c;所以超分之后的结果会出现语义的不一致的情况&#xff0c;所以本文训…

Python入门 2024/7/1

目录 第一个程序hello world 数据类型 注释 变量 用type类型查看数据类型 ​编辑 数据类型转换 ​编辑 标识符 运算符 字符串的三种定义方式 字符串拼接 ​编辑​编辑 字符串格式化 第一个程序hello world 区分c和python c是printf python是print print("h…

晶振在硬件系统中的位置选择与优化策略

在现代电子设备中&#xff0c;晶振扮演着至关重要的角色&#xff0c;它们提供稳定且精确的时钟信号&#xff0c;是系统心脏般的存在。然而&#xff0c;晶振的性能不仅取决于其本身的质量&#xff0c;还与它在硬件系统中的位置选择紧密相关。一个恰当的位置能够最大限度地减少外…

基于K线最短路径构造的非流动性因子

下载地址https://download.csdn.net/download/SuiZuoZhuLiu/89492221

nodejs--【Express基本使用】

10 【Express基本使用】 https://www.expressjs.com.cn/ 基于 Node.js 平台&#xff0c;快速、开放、极简的 web 开发框架。 1.Express的安装方式 Express的安装可直接使用npm包管理器上的项目&#xff0c;在安装npm之前可先安装淘宝镜像&#xff1a; npm install -g cnpm -…