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

news2024/11/23 12:18:46

本文主要用到的插件是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,sources
    withJavadocJar()
    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.path
    tokenName = "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.coloradmin.cn/o/1860191.html

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

相关文章

公司加密软件的主要功能(五款优秀公司加密软件)

在当今数字化和信息化的时代&#xff0c;企业面对的最大挑战之一就是如何保护其敏感数据不被泄露或篡改。无论是内部员工的操作失误还是外部黑客的恶意攻击&#xff0c;都可能导致严重的数据泄露事件。公司加密软件作为一种强有力的安全工具&#xff0c;能够有效地保护企业的敏…

解析分子筛自动填充高原制氧机的工作原理及优势

在高原地区&#xff0c;由于空气稀薄&#xff0c;氧气含量相对较低&#xff0c;这给人们的生活、工作和学习带来了诸多不便。为了解决这个问题&#xff0c;高原制氧机应运而生&#xff0c;其中分子筛自动填充高原制氧机以其高效、稳定、安全的特点受到了广泛的关注和应用。 一、…

PointCloudLib RANSAC算法实现点云粗配准 C++版本

0.实现效果 原始点云 粗配准后的点云 1.算法原理 RANSAC(Random Sample Consensus)算法,更常见的是RANSAC的变种RANSAC-ICP(Iterative Closest Point)或RANSAC结合其他点云配准技术,用于实现两个点云或3D模型之间的粗配准。在这里,我将简要描述一个使用RANSAC算法进行…

【SQL Server数据库】关系模式与关系代数

目录 一、请用关系代数完成下列查询 1. 求 供应工程J1 零件P1的供应商号码SNO&#xff1b; 2. 求 供应工程J1 零件&#xff08;P&#xff09;为红色 的供应商号码SNO&#xff1b; 3. 求 没有使用 天津供应商&#xff08;P&#xff09;生产的红色零件&#xff08;S&#xff0…

Win11 docker build拉取镜像失败(无法访问镜像仓库)

目录 遇到的问题&#xff1a; 修改docker配置 写了一个dockerfile(基于python的镜像)文件&#xff0c;在生成时&#xff0c;一直报错&#xff0c;换了好几个仓库&#xff0c;都是不行(包括阿里、南大、官网、网易、Azure中国镜像等都不行) 遇到的问题&#xff1a; 连接超时…

梅雨季,祛湿不健脾,湿气易反复!4个方法助您健脾胃,祛湿气!

进入梅雨季以来&#xff0c;苏州连续降雨&#xff0c;空气湿度增加&#xff0c;我们身体内的湿气也愈加严重&#xff1a;身上胖嘟嘟、脸上油乎乎、身体困重、乏力&#xff0c;极易疲劳&#xff0c;食欲减退&#xff0c;头昏昏沉沉的&#xff0c;大便也十分黏腻…… 关于祛湿&am…

【软件下载】Camtasia Studio 2024详细安装教程视频

习惯上来说Camtasia Studio是一款简单易用的高清录屏和视频编辑软件&#xff0c;拥有录制屏幕和配音、视频的剪辑和过场动画片、添加说明字幕和水印、制作视频封面和菜单、视频压缩和播放。不得不说Camtasia是一款屏幕录制和视频剪辑软件&#xff0c;教授课程&#xff0c;培训他…

RFID时尚产业链的创新引擎

在数智化浪潮的推动下&#xff0c;随着 RFID 技术的深入应用&#xff0c;时尚品牌不再仅仅局限于传统条码管理模式&#xff0c;而是选择与RFID紧密融合&#xff0c;从生产到销售&#xff0c;从管理到体验&#xff0c;都展现出了前所未有高效。 RFID技术凭借在库存管理、防伪等方…

51单片机STC89C52RC——4.1 矩阵按键(数码管显示按键值)

目录 目录 目的 一&#xff0c;STC单片机模块 二&#xff0c;矩阵按键模块 2.1 针脚定义 ​编辑 2.2 矩阵按键位置 2.3 如何理解按键按下后针脚的高低电平 2.3.1 错误理解1 2.3.2 错误理解2 2.3.3 正确判定按下的是那个按键的逻辑 2.3.4 判定按键按下的依次扫描程…

版本控制工具-git的基本使用

目录 前言一、git简介二、git工作流程三、安装git并配置git3.1 配置用户名和邮箱3.2 配置.gitignore文件&#xff08;可选&#xff09;3.3 配置ssh key&#xff08;可选&#xff09; 四、git基本命令4.1 创建本地仓库4.2 将工作区内容提交到本地仓库4.3 将本地仓库内容推送到远…

Python数据分析-对驾驶安全数据进行预测

一、研究背景和意义 随着汽车保有量的不断增加&#xff0c;交通事故已成为全球范围内的重大公共安全问题。每年因交通事故造成的人员伤亡和财产损失给社会带来了巨大的负担。为了提高驾驶安全&#xff0c;减少交通事故的发生&#xff0c;许多研究致力于探索影响驾驶安全的因素…

C++ | Leetcode C++题解之第190题颠倒二进制位

题目&#xff1a; 题解&#xff1a; class Solution { private:const uint32_t M1 0x55555555; // 01010101010101010101010101010101const uint32_t M2 0x33333333; // 00110011001100110011001100110011const uint32_t M4 0x0f0f0f0f; // 000011110000111100001111000011…

这就是算法:日常生活中的算法应用

日常小例 当我们一听到“算法”这个词&#xff0c;脑海里可能立刻浮现出数学公式和复杂计算的画面。 但事实上&#xff0c;算法并不总是那么高深莫测&#xff0c;很多算法其实是基于我们日常生活中随处可见的基本逻辑。 在深入讨论算法之前&#xff0c;我想先分享一个让人好…

python基础语法 003-2 数据类型字典

1 字典 1.1 字典的表示 字典&#xff1a;也是存储多个数据的&#xff0c;存储多个数据&#xff0c;不记得第二个存储什么用字典&#xff0c;存储多个数据首推列表&#xff1b; 1.1.1 表示方法&#xff1a; {‘key’ : value},用逗号隔开 #列表表示 my_songs [花海, 棉花糖…

2023国家最高科学技术奖薛其坤院士:科学家的幸福感来自于哪里

内容来源&#xff1a;量子前哨&#xff08;ID&#xff1a;Qforepost&#xff09; 文丨浪味仙 排版丨沛贤 深度好文&#xff1a;2000字丨8分钟阅读 6 月 24 日&#xff0c;2023 年度国家最高科学技术奖在京揭晓&#xff0c;薛其坤院士荣获中国科技界崇高荣誉&#xff0c;这不…

pyCharm项目更改目录后,执行路径未更新的解决办法

最头疼环境问题。 换电脑&#xff0c;原python脚本打成zip包&#xff0c;全部拷贝到新电脑上。一开始放到路径A下&#xff0c;不清楚是路径太长还是路径含有中文&#xff0c;执行失败。于是&#xff0c;更换到路径B&#xff0c;结果&#xff0c;仍然执行失败。Run中显示的信息…

【大数据】—量化交易实战案例双均线策略(移动平均线)

声明&#xff1a;股市有风险&#xff0c;投资需谨慎&#xff01;本人没有系统学过金融知识&#xff0c;对股票有敬畏之心没有踏入其大门&#xff0c;今天用另外一种方法模拟炒股&#xff0c;后面的模拟的实战全部用同样的数据&#xff0c;最后比较哪种方法赚的钱多。 量化交易…

天途重磅推出无人机教管平台3.1版及飞课APP

天途无人机教管平台&#xff0c;是一款为院校和培训机构等企业级客户提供的公开版无人机在线培训系统&#xff0c;包含后台管理的【教管平台】和终端的【掌上天途APP】。 天途历经4年上百次调研和迭代打磨&#xff0c;已为一百多家院校和培训机构等企业级客户解决了无人机教学和…

【2024最新版】Windows11 23H2中文家庭版:免费下载!

Windows 11 23H2中文家庭版系统拥有稳定的性能、丰富的功能和卓越的安全性&#xff0c;很多用户都喜欢给自己的电脑安装上这个版本。但是&#xff0c;许多新手用户不清楚在哪里才能下载到Windows11家庭版&#xff1f;接下来小编给大家带来2024年最新的Windows 11 23H2中文家庭版…

基于rouyi框架的多租户改造

基于rouyi框架的多租户改造&#xff0c;重点是实现权限管理和数据隔离。权限管理相当于从原来的“顶级管理员admin-普通用户user”转变为“顶级管理员admin-租户管理员tanantAdmin-普通用户user”。数据隔离主要通过分库、分表、表内设置tenantId字段进行过滤三种方式。 本文主…