【TOOLS】Project 2 Maven Central

news2024/9/19 10:53:40

发布自己的项目到maven中央仓库

Maven Central Account

  1. 访问:https://central.sonatype.com/,点击右上角,根据提示注册账号
    在这里插入图片描述
  2. 构建User token ,用于访问中央仓库的API:
    • 点击右上角,查看账户
    • 点击Generate User Token,根据提示,构建个人访问令牌
    • 将获取的User Token xml代码配置到maven配置文件settings.xml 的servers属性中
      在这里插入图片描述
      在这里插入图片描述

POM.xml

配置需要发布的项目中的POM.xml文件

  1. 配置编译项目的java版本
<properties>
        <maven.compiler.source>11</maven.compiler.source>
        <maven.compiler.target>11</maven.compiler.target>
        <java.version>11</java.version>
</properties>
  1. 配置项目名称、项目地址、打包方式
<name>xx xx</name>
<description>desc</description>
<url>https://github.com/xx/xx.xx.xx</url>
<packaging>pom</packaging>
  1. 配置私库地址
    • 仓库地址分为正式版(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>
  1. 配置开发者信息、项目开源许可证、代码仓库地址
<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>
  1. 配置打包插件

    • 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>
  1. 配置发布插件

    • 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>

发布

  1. 运行发布命令
mvn deploy
  1. 等待maven central验证,如果发布状态不是published,那么就是发布失败,需要根据提示进行相应的更改
    在这里插入图片描述

FAQ

  1. Javadocs must be provided but not found in entries:因为中央仓库没找到Javadoc文档,所以需要打包Javadoc文档,java 1.8打包doc文档时,会报异常,建议提升至java11打包
  2. Illegal reflective access by lombok.javac.apt.LombokProcessor xxx:java11打包Lombok时,需要查看Lombok和java版本是否支持

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

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

相关文章

医院体检信息管理系统,C#体检系统源码,健康体检系统PEIS

体检服务全流程 检前 检前注意事项提醒-体检预约-套餐选择-体检签到-费用缴纳 检中 科室队列提醒-增项检中支付 检后 报告查询-体检百科-报告解读-问卷调查 体检管理系统模块介绍 一、登记管理模块 登记体检者基本信息&#xff0c;包括唯一的体检编号&#xff0c;姓名、…

Windows 10+Visual Studio2019 Opencv-C++安装配置

前往官网下载需要的版本Releases - OpenCVhttps://opencv.org/releases/ 1.下载并解压OpenCV 我选择4.6.0&#xff0c;点击windows版本&#xff0c;进行下载 2.配置项目属性 打开你的Visual Studio 2019项目 -> 右击项目名&#xff0c;选择“属性” 注&#xff1a;整个配…

【C语言】指针基础知识理解【续】

1. ⼆级指针 指针变量也是变量&#xff0c;是变量就有地址&#xff0c;那指针变量的地址存放在哪⾥&#xff1f;这就是 ⼆级指针 。 1.1 引入二级指针 由于一级指针已经很熟悉&#xff0c;这里就不再赘述&#xff0c;这里我们重点探讨二级指针 下面先简单使用一个二级指针看…

机器学习之——支持向量机(SVM)技术详解

机器学习之——支持向量机&#xff08;SVM&#xff09;技术详解 1. 支持向量机的基本原理1.1 超平面1.1.1 定义与作用1.1.2 高维空间中的超平面 1.2 间隔最大化1.2.1 间隔的定义1.2.2 最大化间隔的原则 1.3 支持向量1.3.1 支持向量的定义1.3.2 支持向量的作用 2. SVM的数学基础…

Vue3 加载条(LoadingBar)

效果如下图&#xff1a;在线预览 APIs LoadingBar 参数说明类型默认值必传containerClass加载条容器的类名stringundefinedfalsecontainerStyle加载条容器的样式CSSProperties{}falseloadingBarSize加载条大小&#xff0c;单位 pxnumber2falsecolorLoading加载中颜色string‘…

快速识别音频文件转成文字

一、SenseVoice概述 阿里云通义千问开源了两款语音基座模型 SenseVoice&#xff08;用于语音识别&#xff09;和 CosyVoice&#xff08;用于语音生成&#xff09;。 SenseVoice 专注于高精度多语言语音识别、情感辨识和音频事件检测&#xff0c;有以下特点&#xff1a; 多语言…

4000元投影仪性价比之王:爱普生TW5750极米RS10还是当贝X5S?

买投影很多人会倾向于买大品牌或者是销量最好的那几款&#xff0c;首先是大品牌售后更有保障&#xff0c;口碑和销量也间接证明了这款投影是否值得买。这几年国内投影市场中爱普生、极米、当贝这三家投影品牌无论是在产品、口碑、售后服务等方面都是最好的&#xff0c;被用户们…

深入理解 Go 数组、切片、字符串

打个广告&#xff1a;欢迎关注我的微信公众号&#xff0c;在这里您将获取更全面、更新颖的文章&#xff01; 原文链接&#xff1a;深入理解 Go 数组、切片、字符串 欢迎点赞关注 前言 为什么在一篇文章里同时介绍数组、切片、字符串&#xff0c;了解这三个数据类型底层数据结构…

【人工智能专栏】Beam Search 束搜索

Beam Search 束搜索 这里是一个 beam_size=2 的Beam Search示意图,每个节点都会扩展5个下级节点,在 Beam Search 每次都会从所有扩展节点里面挑选出2个累计启发值最大的节点,直到达到结束标准。 理念 Beam Search 是对 Greedy Search(贪心搜索)的一个改进算法,能够扩展…

windows常用的dos命令

1.打开dos命令窗口: winr -> 输入cmd -> 回车 进入之后可以看到如下界面 其中 c: 代表盘符users: 代表的是磁盘符目录下的文件夹qayrup lin 是users文件夹下的子文件夹 以上的所有构成了我们当前操作的所在位置 常用的dos命令 作用命令切换盘符盘符名: -> 回车盘…

昇思25天学习打卡营第26天|Diffusion扩散模型

看了这个diffusion扩散模型&#xff0c;不得不感慨现在AI还是很厉害的。从一张包浆的图片&#xff0c;可以还原出来图片本来的面目&#xff0c;甚至可能一张打了马赛克的图片&#xff0c;用AI处理可能也可以还原出来原始图片。攻防战在AI加入战斗后又增加了很多变数。 受限于算…

【Bug收割机】已解决使用maven插件打包成功,在控制台使用mvn命令打包失败问题详解,亲测有效!

文章目录 前言问题分析报错原因解决方法私域 前言 在maven项目中&#xff0c;大家经常会使用maven插件来打包项目文件 但是有的人也习惯使用mvn命令在控制台直接进行打包&#xff0c;因为这样可以自定义组装一些命令&#xff0c;使用起来也更加灵活方便&#xff0c;比如mvn pa…

前端开发实用的网站合集

文章目录 一、技能提升篇vueuseJavaScript中文网JavaScript.infoRxJsWeb安全学习书栈网码农之家 二、UI篇iconfont&#xff1a;阿里巴巴矢量图标库IconPark3dicons美叶UndrawError 404摹克 三、CSS篇You-need-to-know-cssCSS TricksAnimate.cssCSS ScanCSS Filter 四、颜色篇中…

Java真人版猫爪老鼠活动报名平台系统

&#x1f43e;“真人版猫爪老鼠活动报名平台系统”——趣味追逐&#xff0c;等你来战&#xff01;&#x1f42d; &#x1f431;【萌宠变主角&#xff0c;现实版趣味游戏】 厌倦了电子屏幕的虚拟游戏&#xff1f;来试试“真人版猫爪老鼠活动”吧&#xff01;在这个平台上&…

android java socket server端 可以不断的连接断开,不断的收发 TCP转发

adb.exe forward tcp:5902 tcp:5902 前面本地5901 转发到 后面设备为5902查看转发 adb forward --list删除所有转发 adb forward --remove-allpublic static final String TAG "Communicate";private static boolean isEnable;private final WebConfig webConfig;//…

jenkins流水线语法--withCredentials篇

jenkins流水线语法--withCredentials篇 &#xff08;在流水线代码中不显示明文密码&#xff09; 在jenkinsfile中进行harbor登录上传镜像时直接用的密码&#xff0c;在代码中不怎么严谨&#xff0c;也缺失安全性&#xff1b;在网上查找资料和大佬们的博客&#xff0c;得出一篇完…

一起来做几道有趣的概率题

看到一篇叫做《和上帝一起掷骰子》的文章&#xff0c;里面提到了很多概率有关的问题&#xff0c;不少经过计算得出的概率都与人第一看上去产生的直觉大相径庭。所以&#xff0c;人类的直觉往往是靠不住的。 举两个例子&#xff1a; 若1千人中有1人携带hiv病毒&#xff0c;有一种…

电脑卡了怎么办?

在日常使用电脑的过程中&#xff0c;我们可能会遇到各种各样的问题&#xff0c;其中电脑卡顿是很让人心烦的问题之一。电脑卡顿不仅会影响我们的工作效率&#xff0c;还会让人感到非常烦恼。本文将详细介绍电脑卡顿的常见原因及其解决方法&#xff0c;帮助大家轻松应对这一问题…

深入浅出消息队列----【延迟消息的实现原理】

深入浅出消息队列----【延迟消息的实现原理】 粗说 RocketMQ 的设计细说 RocketMQ 的设计这样实现是否有什么问题&#xff1f; 本文仅是文章笔记&#xff0c;整理了原文章中重要的知识点、记录了个人的看法 文章来源&#xff1a;编程导航-鱼皮【yes哥深入浅出消息队列专栏】 粗…