【TOOLS】Project 2 Maven Central
发布自己的项目到maven中央仓库
Maven Central Account
- 访问:https://central.sonatype.com/,点击右上角,根据提示注册账号

- 构建User token ,用于访问中央仓库的API:
- 点击右上角,查看账户
- 点击Generate User Token,根据提示,构建个人访问令牌
- 将获取的User Token xml代码配置到maven配置文件settings.xml 的servers属性中


POM.xml
配置需要发布的项目中的POM.xml文件
- 配置编译项目的java版本
<properties><maven.compiler.source>11</maven.compiler.source><maven.compiler.target>11</maven.compiler.target><java.version>11</java.version>
</properties>
- 配置项目名称、项目地址、打包方式
<name>xx xx</name>
<description>desc</description>
<url>https://github.com/xx/xx.xx.xx</url>
<packaging>pom</packaging>
- 配置私库地址
- 仓库地址分为正式版(releases repository)和预览版(snapshot repository)
- id:在settings.xml中配置的server id
- name:仓库名称
- ur:对应的私库地址
<distributionManagement><repository><id>central</id><name>Maven Central</name><url>https://repo.maven.apache.org/maven2</url></repository>
</distributionManagement>
- 配置开发者信息、项目开源许可证、代码仓库地址
<developers><developer><id>000000000</id><name>xxxxxxx</name><email>000000000@qq.com</email></developer></developers><licenses><license><name>MIT License</name><url>https://opensource.org/licenses/MIT</url><distribution>repo</distribution></license></licenses><scm><connection>https://github.com/xx/xx.xx.xx.git</connection><url>https://github.com/xx/xx.xx.xx</url></scm>
-
配置打包插件
- maven-source-plugin:源代码打包工具,中央仓库也会对源代码进行验证
- maven-javadoc-plugin:javadoc文档打包工具,中央仓库会对javadoc经行验证,没有文档会验证失败
<build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-source-plugin</artifactId><version>${maven-source-plugin.version}</version><inherited>true</inherited><executions><execution><id>attach-sources</id><goals><goal>jar</goal></goals></execution></executions><configuration><excludeResources>true</excludeResources><useDefaultExcludes>true</useDefaultExcludes></configuration></plugin><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-javadoc-plugin</artifactId><version>${maven-javadoc-plugin.version}</version><inherited>true</inherited><executions><execution><id>bundle-sources</id><phase>package</phase><goals><goal>jar</goal></goals></execution></executions><configuration><encoding>UTF-8</encoding><charset>UTF-8</charset><show>protected</show><notree>true</notree><failOnError>false</failOnError><doclint>none</doclint></configuration></plugin></plugins>
</build>
-
配置发布插件
- central-publishing-maven-plugin:中央仓库发布插件
- maven-deploy-plugin maven:maven发布插件,任何仓库都需要这个插件
- maven-gpg-plugin:对发布的项目文件进行签名,中央仓库会对文件进行验签,GPG签名详见:https://central.sonatype.org/publish/requirements/gpg/
<build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-deploy-plugin</artifactId><version>${maven-deploy-plugin.version}</version></plugin><plugin><groupId>org.sonatype.central</groupId><artifactId>central-publishing-maven-plugin</artifactId><version>${central-publishing-maven-plugin.version}</version><extensions>true</extensions><configuration><publishingServerId>central</publishingServerId><autoPublish>true</autoPublish><waitUntil>published</waitUntil></configuration></plugin><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-gpg-plugin</artifactId><version>${maven-gpg-plugin.version}</version><executions><execution><id>sign-artifacts</id><phase>verify</phase><goals><goal>sign</goal></goals><configuration><keyname>288F5FE69C7B21AB</keyname><passphraseServerId>288F5FE69C7B21AB</passphraseServerId></configuration></execution></executions></plugin></plugins>
</build>
发布
- 运行发布命令
mvn deploy
- 等待maven central验证,如果发布状态不是published,那么就是发布失败,需要根据提示进行相应的更改

FAQ
- Javadocs must be provided but not found in entries:因为中央仓库没找到Javadoc文档,所以需要打包Javadoc文档,java 1.8打包doc文档时,会报异常,建议提升至java11打包
- Illegal reflective access by lombok.javac.apt.LombokProcessor xxx:java11打包Lombok时,需要查看Lombok和java版本是否支持
相关文章:
【TOOLS】Project 2 Maven Central
发布自己的项目到maven中央仓库 Maven Central Account 访问:https://central.sonatype.com/,点击右上角,根据提示注册账号 构建User token ,用于访问中央仓库的API: 点击右上角,查看账户点击Generate Us…...
【Opencv】模糊
消除噪声 用该像素周围的平均值代替该像素值 4个函数 blur():最经典的 import os import cv2 img cv2.imread(os.path.join(.,dog.jpg)) k_size 7 #窗口大小,数字越大,模糊越强 img_blur cv2.blur(img,(k_size,k_size)) #窗口是正方形ÿ…...
函数式编程范式
文章目录 函数式编程范式不可变性(Immutable)纯函数(Pure Functions)函数作为一等公民(First-Class Functions)高阶函数(Higher-Order Functions函数组合(Function Composition&…...
特征缩放的秘籍:sklearn中的数据标准化技术
特征缩放的秘籍:sklearn中的数据标准化技术 在机器学习中,特征缩放(Feature Scaling)是数据预处理的重要步骤,它确保了不同量纲和范围的特征在模型训练中具有相同的重要性。Scikit-learn(简称sklearn&…...
hdfs文件系统
简述什么是HDFS,以及HDFS作用 ? HDFS在Hadoop中的作用是为海量的数据提供了存储,能提供高吞吐量的数据访问,HDFS有高容错性的 特点,并且设计用来部署在低廉的硬件上;而且它提供高吞吐量来访问应用程序的数…...
基于STM32设计的个人健康检测仪(华为云IOT)(191)
基于STM32设计的个人健康检测仪(华为云IOT)(191) 文章目录 一、设计需求1.1 设计需求总结1.2 设计思路【1】整体设计思路【2】整体构架【3】ESP8266模块配置【4】上位机开发思路【5】供电方式1.3 项目开发背景【1】选题的意义【2】可行性分析【3】参考文献【4】课题研究的意义【…...
面试:CUDA Tiling 和 CPU tiling 技术详解
目录 一、CUDA Tiling 和 CPU Tiling 技术概述 (一)技术原理 (二)应用场景 (三)优势和劣势 二、Tiling 技术在深度学习中的应用 三、Tiling 技术的缺点 一、CUDA Tiling 和 CPU Tiling 技术概述 Til…...
SQL语句中,`TRUNCATE` 和 `DELETE`的区别
TRUNCATE 和 DELETE 是 SQL 中用于删除表中数据的两种命令,它们有一些关键区别: 1. 基本区别 DELETE: 删除表中的数据,但不会删除表结构和索引。可以使用 WHERE 子句来删除特定的记录,也可以不使用 WHERE 子句来删除所有记录。会…...
【Git】.gitignore全局配置与忽略匹配规则详解
设置全局配置 1)在C:/Users/用户名/目录下创建.gitignore文件,在里面添加忽略规则。 如何创建 .gitignore 文件? 新建一个.txt文件,重命名(包括后缀.txt)为 .gitignore 即可。 2)将.gitignore设…...
基于 YOLO V10 Fine-Tuning 训练自定义的目标检测模型
一、YOLO V10 在本专栏的前面几篇文章中,我们使用 ultralytics 公司开源发布的 YOLO-V8 模型,分别 Fine-Tuning 实验了 目标检测、关键点检测、分类 任务,实验后发现效果都非常的不错,但它已经不是最强的了。最新的 YOLO-V10 已经…...
Java学习2
1 如果要使用Long类型的变量,在数据值的后面加上L为后缀(可以是大写也可以是小写),例如 Long i9999999L; 2 如果要使用float类型的变量,在数据值的后面加上F为后缀(可以是大写也可以是小写)&a…...
CSS、less、 Sass、
1 CSS 1.1 css中.a.b 与 .a .b(中间有空格)的区别 区别: .a.b是获取同时含有a和b的元素.a .b(中间有空格),是获取.a元素下的所有.b元素<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><meta name=&quo…...
北京大学:利用好不确定性,8B小模型也能超越GPT-4
大模型有一个显著的特点,那就是不确定性——对于特定输入,相同的LLM在不同解码配置下可能生成显著不同的输出。 比如问一问chatgpt“今天开心吗?”,可以得到两种不同的回答。 常用的解码策略有两种,一个是贪婪解码&am…...
哪些云服务商已通过了等保2.0合规性评估?
已通过等保2.0合规性评估的云服务商 根据最新的搜索结果,以下是已通过等保2.0合规性评估的云服务商: 阿里云:阿里云的“电子政务云平台系统”是全国首个通过等保2.0国标测评的云平台,显示了其在云计算领域的安全合规能力。华为云…...
PHP在线加密系统源码
历时半年,它再一次迎来更新[飘过] 刚刚发的那个有点问题,重新修了一下 本次更新内容有点多 1. 更新加密算法(这应该是最后一次更新加密算法了,以后主要更新都在框架功能上面了) 2. 适配php56-php74 3. 取消批量加…...
OpenCV学习笔记 比较基于RANSAC、最小二乘算法的拟合
一、RANSAC算法 https://skydance.blog.csdn.net/article/details/134887458https://skydance.blog.csdn.net/article/details/134887458 二、最小二乘算法 https://skydance.blog.csdn.net/article/details/115413982...
前端JS特效第53集:带声音的烟花模拟绽放特效插件
带声音的烟花模拟绽放特效插件,先来看看效果: 部分核心的代码如下(全部代码在文章末尾): <!DOCTYPE html> <html lang"en" > <head><meta charset"UTF-8"><title>Firework Simulator v2&…...
好展位,抢先订!2025浙江(玉环)机械展
2025第18届浙江(玉环)机械工业展览会 时间地点:2025年4月25-28日 玉环会展中心 近年来,随着玉环工业经济的蓬勃发展,汽摩配件、阀门水暖五金产业、铜加工、眼镜配件、金属加工生产等行业,如同贪婪的巨人&…...
Java面试八股之Spring如何解决循环依赖
Spring如何解决循环依赖 在Spring框架中,循环依赖问题通常发生在两个或多个Bean相互依赖的情况下。Spring为了解决循环依赖问题,采用了不同的策略,这些策略主要取决于Bean的作用域以及依赖注入的方式。下面是一些关键点: 单例Be…...
如何为 SQL Server 设置强密码以增强安全性?
为 SQL Server 设置强密码是增强数据库安全性的重要步骤。以下是一些关键步骤和最佳实践: 1. 使用复杂密码 长度:密码应至少为 12 个字符。字符类型:包括大写字母、小写字母、数字和特殊字符(如 !#$%^&*())。避免…...
KubeSphere 容器平台高可用:环境搭建与可视化操作指南
Linux_k8s篇 欢迎来到Linux的世界,看笔记好好学多敲多打,每个人都是大神! 题目:KubeSphere 容器平台高可用:环境搭建与可视化操作指南 版本号: 1.0,0 作者: 老王要学习 日期: 2025.06.05 适用环境: Ubuntu22 文档说…...
深度学习在微纳光子学中的应用
深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向: 逆向设计 通过神经网络快速预测微纳结构的光学响应,替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…...
Java-41 深入浅出 Spring - 声明式事务的支持 事务配置 XML模式 XML+注解模式
点一下关注吧!!!非常感谢!!持续更新!!! 🚀 AI篇持续更新中!(长期更新) 目前2025年06月05日更新到: AI炼丹日志-28 - Aud…...
2025盘古石杯决赛【手机取证】
前言 第三届盘古石杯国际电子数据取证大赛决赛 最后一题没有解出来,实在找不到,希望有大佬教一下我。 还有就会议时间,我感觉不是图片时间,因为在电脑看到是其他时间用老会议系统开的会。 手机取证 1、分析鸿蒙手机检材&#x…...
Unit 1 深度强化学习简介
Deep RL Course ——Unit 1 Introduction 从理论和实践层面深入学习深度强化学习。学会使用知名的深度强化学习库,例如 Stable Baselines3、RL Baselines3 Zoo、Sample Factory 和 CleanRL。在独特的环境中训练智能体,比如 SnowballFight、Huggy the Do…...
用docker来安装部署freeswitch记录
今天刚才测试一个callcenter的项目,所以尝试安装freeswitch 1、使用轩辕镜像 - 中国开发者首选的专业 Docker 镜像加速服务平台 编辑下面/etc/docker/daemon.json文件为 {"registry-mirrors": ["https://docker.xuanyuan.me"] }同时可以进入轩…...
精益数据分析(97/126):邮件营销与用户参与度的关键指标优化指南
精益数据分析(97/126):邮件营销与用户参与度的关键指标优化指南 在数字化营销时代,邮件列表效度、用户参与度和网站性能等指标往往决定着创业公司的增长成败。今天,我们将深入解析邮件打开率、网站可用性、页面参与时…...
JavaScript基础-API 和 Web API
在学习JavaScript的过程中,理解API(应用程序接口)和Web API的概念及其应用是非常重要的。这些工具极大地扩展了JavaScript的功能,使得开发者能够创建出功能丰富、交互性强的Web应用程序。本文将深入探讨JavaScript中的API与Web AP…...
使用LangGraph和LangSmith构建多智能体人工智能系统
现在,通过组合几个较小的子智能体来创建一个强大的人工智能智能体正成为一种趋势。但这也带来了一些挑战,比如减少幻觉、管理对话流程、在测试期间留意智能体的工作方式、允许人工介入以及评估其性能。你需要进行大量的反复试验。 在这篇博客〔原作者&a…...
JS手写代码篇----使用Promise封装AJAX请求
15、使用Promise封装AJAX请求 promise就有reject和resolve了,就不必写成功和失败的回调函数了 const BASEURL ./手写ajax/test.jsonfunction promiseAjax() {return new Promise((resolve, reject) > {const xhr new XMLHttpRequest();xhr.open("get&quo…...
