我是靠谱客的博主 专注火车,最近开发中收集的这篇文章主要介绍maven 中央库发布,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

1. 注册 sonatype 账号,地址:https://issues.sonatype.org/

2. 登录 sonatype 创建项目,选择正确的类型

 

 3. groupId介绍:

groupId 可以用github或者gitee, 格式:com.gitee.cn_yaojin 或者 io.github.yushan-yaojin ,其中 cn_yaojin或者 yushan-yaojin 是账号名。

4.  激活相关验证,以gitee为例(github一样),官方会回复一个话,大致如下:

     图中的意思是,在gitee上建一个项目,名字:OSSRH-75628,该项目里面可以为空,但是权限设置为公共,意思是别人也可以访问,只要这个地址是通的就可以。配置好以后,回复一段话给官方,内容随便,比如我回复的:ok,it's work.  官方会验证这个链接是不是通的,主要证明cn_yaojin这个账号是我。

         上图中,红色区域表示你可以上传jar到maven库了。

5. 安装GPG(上传到maven时候,需要做签名等),下载地址:https://www.gnupg.org/download/

6. gpg相关操作

# 1. 查看版本
gpg --version

# 2. 生成key,输入name、邮件地址、确认密码(确认密码需要输入2次),如下图所示:
gpg --gen-key

# 3. 查看公钥
gpg --list-keys

# 4. 发布公钥到服务器(公钥在上面 list-keys命令中查看),发布是否成功,一般在他的返回信息中你可以看明白
gpg --keyserver keyserver.ubuntu.com --send-keys 公钥


# 5. 查看是否发布成功(公钥在上面 list-keys命令中查看)
gpg --keyserver keyserver.ubuntu.com --recv-keys 公钥
创建公钥

 

发布公钥

 7. springboot 的pom文件中加入配置:

<?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 很重要啊,要跟你的sonatype 中写的保持一致   -->
    <groupId>com.gitee.cn_yaojin</groupId>
    <artifactId>gateway-demo</artifactId>
    <packaging>pom</packaging>
    <version>1.0.0</version>
    <modules>
        <module>gateway</module>
    </modules>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.2.5.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

    <distributionManagement>

        <!--公网maven中央库, sonatype 审核通过后,颁发的以下地址 -->
        <snapshotRepository>
            <id>oss</id>
            <url>https://s01.oss.sonatype.org/content/repositories/snapshots/</url>
        </snapshotRepository>
        <repository>
            <id>oss</id>
            <url>https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/</url>
        </repository>

        <!--本地maven 私有中央库-->
        <!--  <repository>
              <id>nexus-releases</id>
              <url>http://localhost:8081/nexus/content/repositories/releases</url>
          </repository>-->
    </distributionManagement>


    <profiles>
        <profile>
            <id>release</id>
            <build>
                <plugins>
                    <!--源码-->
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-source-plugin</artifactId>
                        <executions>
                            <execution>
                                <phase>package</phase>
                                <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>
                        <configuration>
                            <show>private</show>
                            <nohelp>true</nohelp>
                            <charset>UTF-8</charset>
                            <encoding>UTF-8</encoding>
                            <docencoding>UTF-8</docencoding>
                        </configuration>
                        <executions>
                            <execution>
                                <phase>package</phase>
                                <id>attach-javadocs</id>
                                <goals>
                                    <goal>jar</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                    <!--gpg 发布到公网 maven中央仓库,需要做签名 -->
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-gpg-plugin</artifactId>
                        <executions>
                            <execution>
                                <id>sign-artifacts</id>
                                <phase>verify</phase>
                                <goals>
                                    <goal>sign</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>
    </profiles>

    <licenses>
        <license>
            <name>The Apache Software License, Version 2.0</name>
            <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
        </license>
    </licenses>

    <!--开发者信息-->
    <developers>
        <developer>
            <name>cn_yaojin</name>
            <email>cn_yaojin@qq.com</email>
            <url>https://gitee.com/cn_yaojin/gateway-demo.git</url>
        </developer>
    </developers>


    
    <build>
        
        <!--<plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
            <plugin>
                <groupId>org.sonatype.plugins</groupId>
                <artifactId>nexus-staging-maven-plugin</artifactId>
                <version>1.6.8</version>
                <configuration>
                    <serverId>oss</serverId>
                    <nexusUrl>https://oss.sonatype.org/</nexusUrl>
                    <autoReleaseAfterClose>true</autoReleaseAfterClose>
                </configuration>
            </plugin>
        </plugins>-->
    </build>

</project>

8. 注意,如果你的项目结构是这样的:

 9. 发布到maven

# 在项目目录执行以下命令,会让你输入上文设置gpg公钥时候的那个确认密码,输入即可。
mvn clean deploy -P release

10. 进入nexus官方控制台:Nexus Repository Manager

  点击close后,会进行校验,如果失败的话,会有提示,成功的话,release按钮会激活。如果某一项校验失败,会变成红颜色,点击他会显示具体的错误信息。

点击close后的校验及错误提示

 11. 以上都通过后,会受到邮件,然后在maven库里搜索到你的jar(当然,收到邮件也不代表maven库可以搜到,具体要多久,未知,可能很快)

最后

以上就是专注火车为你收集整理的maven 中央库发布的全部内容,希望文章能够帮你解决maven 中央库发布所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(29)

评论列表共有 0 条评论

立即
投稿
返回
顶部