怎么将自己的Maven项目上传到Maven中央仓库/Maven阿里云云效仓库

news2024/10/7 8:22:23

前言

对于工作了多年的老程序员来说,往往会总结出一些比较好用的开发工具包。那么如果把这些好的工具插件共享出来供大家快速的使用呢,最好的方式就是将这些工具插件上传到Maven中央仓库/Maven阿里云云效仓库,这样,有需要用到这些工具插件的同学之间通过maven导入这些工具插件就可以快速使用了。下面我将一步一步教大家怎么将自己总结的工具插件上传到Maven中央仓库/Maven阿里云云效仓库。

一、准备工作

  • Github / Gitee 或者其他代码托管平台账号

二、注册issues.sonatype.org账号

  • 如下图,打开https://issues.sonatype.org/网站,点击“Sign up”创建一个账号。
    在这里插入图片描述
  • 填写注册信息,进行注册。
    在这里插入图片描述
  • 注册成功 登录新建项目
    在这里插入图片描述
  • 看注释:
    Group Id如果是自己的域名,则需要验证域名可用性,如果是Gitee/Githup的域名,则不需要验证
    验证域名的话可以在DNS中做如下解析:
    在这里插入图片描述
    如果是使用Gitee/Githup的话按照提示创建项目即可。

在这里插入图片描述

三、下载安装Gpg4Win

下载地址官网:https://www.gpg4win.org/

  • 创建密钥
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  • 上传密钥
    在这里插入图片描述

四、配置本地maven的settings文件

  • 配置servers
配置servers

  <servers>
	<server>
      	<id>ossrh</id>
      	<username>第一步注册的账号issues.sonatype.org账号</username>
      	<password>第一步注册的密码issues.sonatype.org密码</password>
	</server>
</servers>

  • 配置profiles
<profiles>
<profile>
      <id>ossrh</id>
      <activation>
        <activeByDefault>true</activeByDefault>
      </activation>
      <properties>
        <gpg.executable>这里填你安装的GnuPG位置D:\app\GnuPG\bin\gpg.exe</gpg.executable>
        <gpg.passphrase>刚才你生成密钥时输入的密码</gpg.passphrase>
        <gpg.homedir>这里填你秘钥在磁盘上的位置C:\Users\xql15\AppData\Roaming\gnupg</gpg.homedir>
	  </properties>
</profile>
</profiles>

五、配置上传项目的pom文件

build plugins必须添加maven-javadoc-plugin;maven-source-plugin;maven-gpg-plugin,否则在发布到sonatype进行验证时会报错

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.gitee.xu_qing_lei</groupId>
    <name>utils</name>
    <artifactId>utils</artifactId>
    <version>1.0</version>
    <packaging>jar</packaging>
    <description>init</description>


    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
    </properties>

    <!--开源协议-->
    <licenses>
        <license>
            <name>Apache License, Version 2.0</name>
            <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
            <distribution>repo</distribution>
            <comments>A business-friendly OSS license</comments>
        </license>
    </licenses>

    <!--项目地址-->
    <url>https://gitee.com/xu_qing_lei/utils</url>

    <!--开发者信息-->
    <developers>
        <developer>
            <id>utils</id>
            <name>utils</name>
            <email>2606482590@qq.com</email>
            <roles>
                <role>Developer</role>
            </roles>
            <timezone>+8</timezone>
        </developer>
    </developers>


    <!--项目在github或其它托管平台的地址-->
    <scm>
        <connection>https://gitee.com/xu_qing_lei/utils.git</connection>
        <developerConnection>scm:git:ssh://git@gitee.com:xu_qing_lei/utils.git</developerConnection>
        <url>https://gitee.com/xu_qing_lei/utils/tree/master</url>
    </scm>

    <dependencies>
        <!--项目依赖-->
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>1.3.2</version>
        </dependency>
    </dependencies>
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-source-plugin</artifactId>
                <version>2.2.1</version>
                <executions>
                    <execution>
                        <id>attach-sources</id>
                        <goals>
                            <goal>jar-no-fork</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-javadoc-plugin</artifactId>
                <version>2.9.1</version>
                <configuration>
                    <additionalJOptions>
                        <additionalJOption>-Xdoclint:none</additionalJOption>
                    </additionalJOptions>
                </configuration>
                <executions>
                    <execution>
                        <id>attach-javadocs</id>
                        <goals>
                            <goal>jar</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-gpg-plugin</artifactId>
                    <version>1.5</version>
                    <executions>
                        <execution>
                            <id>sign-artifacts</id>
                            <phase>verify</phase>
                            <goals>
                                <goal>sign</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>
        </plugins>
    </build>

    <distributionManagement>
        <snapshotRepository>
            <id>ossrh</id>
            <url>https://s01.oss.sonatype.org/content/repositories/snapshots</url>
        </snapshotRepository>
        <repository>
            <id>ossrh</id>
            <url>https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/</url>
        </repository>
    </distributionManagement>

</project>

六、打包 上传deploy

mvn clean compile package deploy

执行完成会弹窗 输入第一次生成密匙的密码
在这里插入图片描述

七、登录s01.oss.sonatype.org完成最后的发布

账号密码同第一步注册的issues.sonatype.org
按照下图步骤一步一步操作
在这里插入图片描述
在点击Close 验证的时候可能会出现错误,导致不能执行下一步,这个时候需要调整项目pom配置,调整好后,重新发布,再次验证不报错即可
在这里插入图片描述

八、查看结果

发布完后,大概半小时后可以在Maven中央仓库看到:https://central.sonatype.com/
然后可以在https://mvnrepository.com/
和Maven阿里云云效仓库https://developer.aliyun.com/mvn/search 查询到。

附录:参考资料

https://blog.csdn.net/Nuomen/article/details/129240511
https://blog.csdn.net/qq_42264638/article/details/130207209
https://blog.csdn.net/g5zhu5896/article/details/129775658
https://cloud.tencent.com/developer/article/2120266

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

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

相关文章

泰语同声翻译一天多少钱呢

我们知道&#xff0c;泰语同声翻译是指在涉外会议、展览会、商务洽谈等场合中广泛使用的翻译服务。活动中&#xff0c;专业的翻译人员在场内提供及时的泰语口译服务&#xff0c;使听众能够及时地理解讲话者的内容。那么&#xff0c;泰语同声翻译一天多少钱呢&#xff1f;如何做…

BeanFactory与ApplicationContext

BeanFactory与ApplicationContext的区别 使用Alt Ctrl U查看java类图 什么是BeanFactory接口 他是ApplicationContext的父接口他才是Spring 的核心容器&#xff0c;主要的ApplicationContext功能的实现都间接通过BeanFactory接口来实现 在ApplicationContext类中方法的实现是…

数据结构与算法(C语言版)P4---顺序表、链表总结

顺序表和链表&#xff08;双向带头链表&#xff09;的区别 顺序表&#xff1a; 优点&#xff1a; 支持随机访问。需要随机访问结构支持算法可以很好的使用。cpu高速缓存利用率&#xff08;命中率&#xff09;更高。存储密度高 缺点&#xff1a; 头部中部插入删除时间效率低。…

数据结构与算法面试

1、链表反转 需要三个指针&#xff0c;一个pre指针指向反转的前一个节点&#xff0c;cur指向要反转的节点&#xff0c;然后设置有一个temp指针指向需要反转的下一个节点&#xff0c;用来使得cur指针移动&#xff0c;因为我们反转之后&#xff0c;无法使用next指针访问到后一个节…

【三维重建】3D Gaussian Splatting:实时的神经场渲染

文章目录 摘要一、前言二、相关工作1.传统的场景重建与渲染2.神经渲染和辐射场3.基于点的渲染和辐射场4.*什么是 Tile-based rasterizer (快速光栅化) 三、OVERVIEW四、可微的三维高斯 Splatting五、三维高斯 自适应密度控制的优化1.优化2.高斯的自适应控制 六、高斯分布的快速…

计算机是如何工作的(上篇)

计算机发展史 世界上很多的高科技发明,来自于军事领域 计算机最初是用来计算弹道导弹轨迹的 弹道导弹 ~~国之重器,非常重要 两弹一星 原子弹,氢弹,卫星(背后的火箭发射技术) 计算弹道导弹轨迹的计算过程非常复杂,计算量也很大 ~~ 但是可以手动计算出来的(当年我国研究两弹一…

【深度学习】Pytorch 系列教程(九):PyTorch数据结构:2、张量操作(Tensor Operations):(3)张量变形

目录 一、前言 二、实验环境 三、PyTorch数据结构 0、分类 1、张量&#xff08;Tensor&#xff09; 2、张量操作&#xff08;Tensor Operations&#xff09; 1. 数学运算 2. 统计计算 3. 张量变形 展开张量&#xff1a;flatten 改变张量的形状&#xff1a;view 改变…

TDE和数据脱敏功能介绍

TDE(Transparent Data Encryption)和数据脱敏(Data Masking)是两种常见的数据安全技术&#xff0c;它们在保护敏感数据和增强数据隐私方面起着至关重要的作用。接下来&#xff0c;将对这两种技术进行详细的介绍。 TDE&#xff0c;全称透明数据加密(Transparent Data Encryption…

Golang编写自定义IP限流中间件

目录 基于令牌桶的限流算法实现高并发限流&#xff08;使用golang官方限流器&#xff09;Go代码测试记录ab -t 1 -c 1 http://127.0.0.1:8080/api/resource结果预测&#xff1a;1秒内最多生成10个令牌&#xff0c;而总共有20个串行的请求&#xff0c;结果应该是1个成功&#xf…

Hadoop源码阅读(二):DataNode启动

说明&#xff1a; 1.Hadoop版本&#xff1a;3.1.3 2.阅读工具&#xff1a;IDEA 2023.1.2 3.源码获取&#xff1a;Index of /dist/hadoop/core/hadoop-3.1.3 (apache.org) 4.工程导入&#xff1a;下载源码之后得到 hadoop-3.1.3-src.tar.gz 压缩包&#xff0c;在当前目录打开Pow…

二叉树(2——二叉树链式结构的实现)

二叉树的遍历 前序、中序以及后序遍历 学习二叉树结构&#xff0c;最简单的方式就是遍历。所谓 二叉树遍历 (Traversal) 是按照某种特定的规则&#xff0c;依次对二叉 树中的节点进行相应的操作&#xff0c;并且每个节点只操作一次 。访问结点所做的操作依赖于具体的应用问题。…

第一次课,通过进程信息和服务信息识别当前计算机运行程序(预习版)

题目&#xff1a; 检测的目标进程&#xff1a; ydebugg ; “ImmunityDebugger.exe” _500], rax Exe ; “ollydbg.exe” _4F8], rax hackerE ; “ProcessHacker.exe” _4F0], rax Exe ; “tcpview.exe” _4E8], rax sExe ; “autoruns.exe” _4E0], rax scExe ; “autorunsc.ex…

什么是GPT磁盘?介绍GPT(GUID 分区表)磁盘及其优势!

GPT概述 GPT磁盘是什么意思&#xff1f;GPT是全局唯一标识符分区表&#xff08;GUID Partition Table&#xff09;的简称&#xff0c;它是硬盘分区表结构的一个标准模式。在我们深入了解GPT磁盘的特性之前须知&#xff0c;MBR磁盘的分区信息直接保存在主引导记录&#xff0…

【论文阅读】Cornus: Atomic Commit for a Cloud DBMS with Storage Disaggregation

Cornus Paper Preknowledge Share-Nothing Related Work Cornus: Atomic Commit for a Cloud DBMS with Storage Disaggregation ABSTRACT 传统2PC存在两个限制&#xff08;缺点&#xff09; Long Latency&#xff1a;long latency due to two eager log writes on the …

SQL优化--分页优化(limit)

在数据量比较大时&#xff0c;如果进行limit分页查询&#xff0c;在查询时&#xff0c;越往后&#xff0c;分页查询效率越低。 通过测试我们会看到&#xff0c;越往后&#xff0c;分页查询效率越低&#xff0c;这就是分页查询的问题所在。 因为&#xff0c;当在进行分页查询时&…

想要精通算法和SQL的成长之路 - 最长等差数列

想要精通算法和SQL的成长之路 - 最长等差数列 前言一. 最长等差数列 前言 想要精通算法和SQL的成长之路 - 系列导航 一. 最长等差数列 原题链接 思路&#xff1a; 我们假设dp[i][j] 为&#xff1a;以num[i]为结尾&#xff0c;以j为公差的最长等差子序列的长度。由此可知&a…

wifi密码破解

文章目录 前言一、破解原理二、配置环境三、运行测试四、资源自取 前言 本文基于 python 实现了破解 wifi 密码的功能&#xff0c;采用的破解方式是穷举法&#xff0c;效率相对来说很低&#xff0c;对于设置密码简单的路由器来说比较适用。 一、破解原理 程序主要采用 python…

2023-09-16 CSP-J 第一轮初赛真题解析

分数&#xff1a;100 考试时间&#xff1a;120分钟 一、 单项选择题&#xff08;共15题&#xff0c;每题2分&#xff0c;共计30分&#xff1a;每题有且仅有一个正确选项&#xff09; 1.在 C中&#xff0c;下面哪个关键字用于声明一个变量&#xff0c;其值不能被修改&#xf…

JavaWeb基础学习(5)

JavaWeb基础学习 一、Filter1.1 Filter介绍1.2 Filter快速入门1.3、Filter执行流程1.4、Filter使用细节1.5、Filter-案例-登陆验证 二、Listener2.1 Listener介绍2.2、ServletContextListener使用 三、AJAX3.1 AJAX介绍与概念3.2 AJAX快速入门3.3 Axios异步架构3.4 JSON-概述和…

基于Yolov8网络进行目标检测(三)-训练自己的数据集

前一篇文章详细了讲解了如何构造自己的数据集&#xff0c;以及如何修改模型配置文件和数据集配置文件&#xff0c;本篇主要是如何训练自己的数据集&#xff0c;并且如何验证。 VOC2012数据集下载地址&#xff1a; http://host.robots.ox.ac.uk/pascal/VOC/voc2012/ coco全量数据…