【拥抱开源】发布自己的项目到maven中央仓库

文章目录

    • 第一步,注册账号
    • 第二步,登录
    • 第三步,设置信息
    • 第四步,创建问题
    • 第五步,验证信息
    • 第六步,上传jar包到中央仓库
      • 我们先上传snapshot版本的
        • 第一步,配置密钥
          • 第一步,下载密钥生成器
          • ☎️第二步,生成密钥
          • ☎️第三步,查看公钥
          • 第四步,发布公钥
        • 第二步,配置maven
          • 第一步,配置maven的settings.xml文件
          • 第二步,idea使用改配置文件
        • 第三步,配置项目的pom文件
          • 第一步,修改配置
          • 第二步,打包上传
        • 第四步,查看是否上传成功
      • 再上传release版本
        • 第一步,修改settings.xml
        • ⌛️第二步,修改pom文件
        • ⏳第三步,打包上传
        • ⏰第四步,查看是否上传成功
    • ⌚️第七步,后续发布新版本

第一步,注册账号

官网注册账号地址

username不能是中文,不让后面会出问题

【拥抱开源】发布自己的项目到maven中央仓库_第1张图片
【拥抱开源】发布自己的项目到maven中央仓库_第2张图片

第二步,登录

【拥抱开源】发布自己的项目到maven中央仓库_第3张图片

第三步,设置信息

【拥抱开源】发布自己的项目到maven中央仓库_第4张图片
【拥抱开源】发布自己的项目到maven中央仓库_第5张图片

第四步,创建问题

【拥抱开源】发布自己的项目到maven中央仓库_第6张图片
【拥抱开源】发布自己的项目到maven中央仓库_第7张图片

一定要选如图的选项

【拥抱开源】发布自己的项目到maven中央仓库_第8张图片

【拥抱开源】发布自己的项目到maven中央仓库_第9张图片

图4.1

概要:填你的项目名
groupid:如果gitee上的项目就填io.gitee+下图所示antopen,如果是公司(有域名和公司邮箱),就填com.公司名称

【拥抱开源】发布自己的项目到maven中央仓库_第10张图片
project url:项目地址

【拥抱开源】发布自己的项目到maven中央仓库_第11张图片
SCM url:项目克隆地址(后面以.git结尾)

【拥抱开源】发布自己的项目到maven中央仓库_第12张图片

其他的如图4.1所示

第五步,验证信息

【拥抱开源】发布自己的项目到maven中央仓库_第13张图片

意思是说让你创建一个空仓库来验证是不是你本人在操作

【拥抱开源】发布自己的项目到maven中央仓库_第14张图片

创建即可,要设置为开源,gitee现在默认是私有的

【拥抱开源】发布自己的项目到maven中央仓库_第15张图片

创建完成之后点击Respond按钮告诉工作人员已经创建好了

我这里已经成功了,所以没有Respond按钮

【拥抱开源】发布自己的项目到maven中央仓库_第16张图片

第六步,上传jar包到中央仓库

【拥抱开源】发布自己的项目到maven中央仓库_第17张图片

我们先上传snapshot版本的

第一步,配置密钥

第一步,下载密钥生成器

下载并安装GPG:
https://www.gnupg.org/download/index.html

【拥抱开源】发布自己的项目到maven中央仓库_第18张图片
【拥抱开源】发布自己的项目到maven中央仓库_第19张图片
【拥抱开源】发布自己的项目到maven中央仓库_第20张图片

☎️第二步,生成密钥

【拥抱开源】发布自己的项目到maven中央仓库_第21张图片

进入bin目录

【拥抱开源】发布自己的项目到maven中央仓库_第22张图片

gpg --gen-key

依次输入姓名和地址,填你注册sonatype的信息就行了

【拥抱开源】发布自己的项目到maven中央仓库_第23张图片

然后让你输入密码(私钥密码passphrase

记住,后面要用

【拥抱开源】发布自己的项目到maven中央仓库_第24张图片


pub   ed25519 2023-01-09 [SC] [expires: 2025-01-08]
      A4BE13B592B3B38A442170A922D74586719B2B26
uid                      tset <setset@sdf。com>
sub   cv25519 2023-01-09 [E] [expires: 2025-01-08]

A4BE13B592B3B38A442170A922D74586719B2B26 就是你的密钥,记住

☎️第三步,查看公钥
gpg --list-keys

【拥抱开源】发布自己的项目到maven中央仓库_第25张图片

存储路径,记住

第四步,发布公钥
gpg --keyserver hkp://keyserver.ubuntu.com:11371 --send-keys A4BE13B592B3B38A442170A922D74586719B2B26

意思就是上传到hkp://keyserver.ubuntu.com:11371中去,然后sonatype也会去这里验证

查询发布公钥是否成功


gpg --keyserver hkp://keyserver.ubuntu.com:11371 --recv-keys A4BE13B592B3B38A442170A922D74586719B2B26

出现这样就成功了

【拥抱开源】发布自己的项目到maven中央仓库_第26张图片

第二步,配置maven

第一步,配置maven的settings.xml文件
  <servers>
	  <server>
        <id>ossrhid>
        <username>(SonaType账号username)username>
        <password>填你注册SonaType时填写的密码password>
	  server>
  servers>
 
  <profiles>
    <profile>
      <id>ossrhid>
      <activation>
        <activeByDefault>trueactiveByDefault>
      activation>
      <properties>
        
        <gpg.executable>D:/gpg/GnuPG/bin/gpg.exegpg.executable>
        <gpg.passphrase>填写你生成秘钥时输入的密码gpg.passphrase>
        
        <gpg.homedir>C:/Users/Administrator/AppData/Roaming/gnupggpg.homedir>
      properties>
    profile>
  profiles>
第二步,idea使用改配置文件

【拥抱开源】发布自己的项目到maven中央仓库_第27张图片

第三步,配置项目的pom文件

第一步,修改配置
    
    <groupId>io.gitee.antopengroupId>
    <artifactId>simple-cacheartifactId>
    
    <version>1.0.0-SNAPSHOTversion>
 
    
 <name>simple-cachename>
    <description>simple cachedescription>
    <url>https://gitee.com/antopen/simple-cacheurl>
 
    
    <licenses>
        <license>
            <name>The Apache Software License, Version 2.0name>
            <url>http://www.apache.org/licenses/LICENSE-2.0.txturl>
        license>
    licenses>
 
    
 	<developers>
        <developer>
            <id>masiyiid>
            <name>masiyiname>
            <email>[email protected]email>
            <roles>
                <role>Project Managerrole>
                <role>Architectrole>
            roles>
            <timezone>+8timezone>
        developer>
    developers>
    
    
    <scm>
        <connection>https://gitee.com/antopen/simple-cache.gitconnection>
        <developerConnection>scm:git:ssh://[email protected]:antopen/simple-cache.gitdeveloperConnection>
        <url>https://gitee.com/antopen/simple-cacheurl>
    scm>
 
    <profiles>
        <profile>
            
            <id>ossrhid>
            <activation>
                <activeByDefault>trueactiveByDefault>
            activation>
            <build>
                
                <plugins>
                    <plugin>
                        <groupId>org.sonatype.pluginsgroupId>
                        <artifactId>nexus-staging-maven-pluginartifactId>
                        <version>1.6.7version>
                        <extensions>trueextensions>
                        <configuration>
                            <serverId>ossrhserverId>
                            <nexusUrl>https://s01.oss.sonatype.org/nexusUrl>
                            <autoReleaseAfterClose>trueautoReleaseAfterClose>
                        configuration>
                    plugin>
                       
                    
                    <plugin>
                        <groupId>org.apache.maven.pluginsgroupId>
                        <artifactId>maven-source-pluginartifactId>
                        <version>2.2.1version>
                        <executions>
                            <execution>
                                <id>attach-sourcesid>
                                <goals>
                                    <goal>jar-no-forkgoal>
                                goals>
                            execution>
                        executions>
                    plugin>
                    
                    
                    <plugin>
                        <groupId>org.apache.maven.pluginsgroupId>
                        <artifactId>maven-javadoc-pluginartifactId>
                        <version>2.9.1version>
                        <executions>
                            <execution>
                                <id>attach-javadocsid>
                                <goals>
                                    <goal>jargoal>
                                goals>
                            execution>
                        executions>
                    plugin>
 
                    
                    <plugin>
                        <groupId>org.apache.maven.pluginsgroupId>
                        <artifactId>maven-gpg-pluginartifactId>
                        <version>1.5version>
                        <executions>
                            <execution>
                                <id>sign-artifactsid>
                                <phase>verifyphase>
                                <goals>
                                    <goal>signgoal>
                                goals>
                            execution>
                        executions>
                    plugin>
 
                plugins>
            build>
            
            <distributionManagement>
                <snapshotRepository>
                   
                   <id>ossrhid>
                   <url>https://s01.oss.sonatype.org/content/repositories/snapshotsurl>
                snapshotRepository>
                <repository>
                    <id>ossrhid>
              		<url>https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/url>
                repository>
            distributionManagement>
        profile>
 
    profiles>
第二步,打包上传

先把上面的注释全部删掉,再上传

【拥抱开源】发布自己的项目到maven中央仓库_第28张图片

然后会弹出对话框让你输入生成gpg时填写的密码

第四步,查看是否上传成功

https://s01.oss.sonatype.org/

【拥抱开源】发布自己的项目到maven中央仓库_第29张图片

能找到就是成功了

【拥抱开源】发布自己的项目到maven中央仓库_第30张图片

再上传release版本

第一步,修改settings.xml

<!--将原来server标签和profile标签中的的ossrh替换为release-->
<id>release</id>

⌛️第二步,修改pom文件

 	<groupId>io.gitee.antopen</groupId>
    <artifactId>simple-cache</artifactId>
    去除-SNAPSHOT后缀
    <version>1.0.1</version>

	<!--将原来profile标签中的的ossrh替换为release-->
	<id>release</id>
	
	 <!--移除此发布到中央SNAPSHOT仓库插件,并替换为分割线下面发布到中央release仓库的插件-->
                    <plugin>
                        <groupId>org.sonatype.plugins</groupId>
                        <artifactId>nexus-staging-maven-plugin</artifactId>
                        <version>1.6.7</version>
                        <extensions>true</extensions>
                        <configuration>
                            <serverId>ossrh</serverId>
                            <nexusUrl>https://s01.oss.sonatype.org/</nexusUrl>
                            <autoReleaseAfterClose>true</autoReleaseAfterClose>
                        </configuration>
                    </plugin>
 
                    <!--                    分割线                -->
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-release-plugin</artifactId>
                        <version>2.5.3</version>
                        <configuration>
                            <autoVersionSubmodules>true</autoVersionSubmodules>
                            <useReleaseProfile>false</useReleaseProfile>
                            <releaseProfiles>release</releaseProfiles>
                            <goals>deploy</goals>
                        </configuration>
                    </plugin>
	
移除
				 <repository>
                    <id>ossrh</id>
              		<url>https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/</url>
                </repository>
替换为
				 <repository>
                    <id>release</id>
                    <url>https://s01.oss.sonatype.org/content/repositories/releases/</url>
                </repository>

⏳第三步,打包上传

【拥抱开源】发布自己的项目到maven中央仓库_第31张图片

⏰第四步,查看是否上传成功

https://s01.oss.sonatype.org/

【拥抱开源】发布自己的项目到maven中央仓库_第32张图片

都上传成功之后就会收到官方的信息

在这里插入图片描述
意思是

io.gitee.antopen的中央同步已激活。成功发布后,您的组件将在中央对公众开放https://repo1.maven.org/maven2/,通常在30分钟内,但更新到https://search.maven.org可能需要四个小时。

30分钟后就可以下载,4个小时后就可以在mvn搜索网页可以搜索到

【拥抱开源】发布自己的项目到maven中央仓库_第33张图片

⌚️第七步,后续发布新版本

发布出去就改不了了,如果需要bug修复或者版本更新就只需要上传release版本即可

修改版本号,重复上面操作即可

【拥抱开源】发布自己的项目到maven中央仓库_第34张图片

鸣谢:https://blog.csdn.net/lovexiaotaozi/article/details/121989407

希望更多的小伙伴能够参与到开源当中去,这样大家才能进步,社会才会发展

你可能感兴趣的:(sonatype,maven,jar,开源)