把自己的垃圾代码发布到官方中央仓库

参考博客:将组件发布到maven中央仓库-CSDN博客 感谢这位博主。但是他的步骤有漏缺,相对进行补充

访问管理页面

网址:Maven Central

新注册账号,或者使用github快捷登录,建议使用github快捷登录

添加命名空间

注意,如果使用github快捷登录,默认携带 io.github.?? 的命名空间,如果自己的代码在github上,可以直接使用这个命名空间

如果代码在 码云 仓库,

提交后,提示需要验证空间,需要按照要求,到 码云 仓库创建一个对应名称的空内容的项目,然后点击认证。

如上图, io.gitee.wsitm 是我的命名空间

添加其他命名空间见 Register a Namespace - The Central Repository Documentation

创建代码仓库

注意:代码一定需要符合开源,可以使用MIT开源,或其他开源。创建开源极为容易,gitee默认会提示创建开源,有快捷入口,点击快速创建。

代码的pom.xml的配置

具体如下:

XML 复制代码
<?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>io.gitee.wsitm</groupId>
    <artifactId>wsitm-clutter</artifactId>
    <version>0.0.1</version>
    <url>https://gitee.com/wsitm/wsitm-clutter.git</url>
 
    <packaging>jar</packaging>
 
    <name>${project.artifactId}</name>
    <description>wsitm-clutter杂烩工具</description>
 
    <dependencies>
    </dependencies>
 
    <licenses>
        <license>
            <name>MIT License</name>
            <url>https://opensource.org/licenses/MIT</url>
            <comments>The project itself is licensed under MIT License.</comments>
        </license>
    </licenses>
 
    <developers>
        <developer>
            <name>yourname</name>
            <email>youremail@qq.com</email>
        </developer>
    </developers>
 
    <scm>
        <connection>scm:git@gitee.com:wsitm/wsitm-clutter.git</connection>
        <developerConnection>scm:git@gitee.com:wsitm/wsitm-clutter.git</developerConnection>
        <url>https://gitee.com/wsitm/wsitm-clutter.git</url>
    </scm>
 
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-source-plugin</artifactId>
                <version>3.3.0</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>
                    <aggregate>true</aggregate>
                    <charset>UTF-8</charset>
                    <encoding>UTF-8</encoding>
                    <docencoding>UTF-8</docencoding>
                    <additionalparam>-Xdoclint:none</additionalparam>
                </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>3.1.0</version>
                <executions>
                    <execution>
                        <id>sign-artifacts</id>
                        <phase>verify</phase>
                        <goals>
                            <goal>sign</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
 
            <!--maven插件-->
            <plugin>
                <groupId>org.sonatype.central</groupId>
                <artifactId>central-publishing-maven-plugin</artifactId>
                <version>0.4.0</version>
                <extensions>true</extensions>
                <configuration>
                    <publishingServerId>central</publishingServerId>
                    <tokenAuth>true</tokenAuth>
                </configuration>
            </plugin>
 
        </plugins>
    </build>
</project>

生成GPG密钥

作用:这是用于给自身源码加签名

下载GPG管理软件:https://gnupg.org/download/index.html

点击进入下载页面

如上图,当然,如果有钱也可以捐献一些。我不一样,我白嫖

安装完成之后,使用命令生成密钥,命令: gpg --gen-key

生成之后

推送密钥到远程服务端

命令: gpg --keyserver hkp://keyserver.ubuntu.com --send-keys [生成密钥后的标识]

例子:gpg --keyserver hkp://keyserver.ubuntu.com --send-keys 2*************F6449

服务:--keyserver 有三个官方网址可以切换

注意:可能推送不成功,三个网址我都测试不成功,不知道什么原因,只能使用另一种方法

公钥如下:

复制全部内容,手动上传,打开服务网址: https://keyserver.ubuntu.com/#

生成token

得到的token格式如下:

maven的setting.xml的配置

具体如下:

XML 复制代码
<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
    <servers>
        <server>
            <id>central</id>
            <username>${tokenId}</username>
            <password>${tokenPass}</password>
        </server>
    </servers>
 
    <profiles>
        <profile>
            <id>gpg</id>
            <properties>
                <gpg.executable>gpg</gpg.executable>
                <gpg.keyname>youremail@qq.com</gpg.keyname>
                <gpg.passphrase>${pgp-password}</gpg.passphrase>
                <gpg.useagent>true</gpg.useagent>
            </properties>
        </profile>
    </profiles>
</settings>

发布到仓库

进入代码目录,执行命令: mvn clean deploy

发布完成,打开管理页面

提交后需要验证,如果正常

如果异常,查看错误描述

去仓库查看自己的项目

阿里云: 仓库服务

官方: Central Repository:

官方页面:https://mvnrepository.com/

注:阿里云,和官方能在审核后1小时内能查到自己的项目,但是官方页面需要好多天才能查询。但直接在maven中引用即可,并不影响使用

相关推荐
南屿欣风1 小时前
Maven 聚合工程打包报错:Unable to find main class 快速解决
java·maven
_loehuang_1 小时前
Docker Compose 部署 Maven 私有库 nexus3
java·docker·maven·nexus·maven私有库
IT 行者14 小时前
从 Gitee 开源项目发布到 Maven Central 中央仓库完整指南
gitee·开源·maven·中央仓库
0xwang2 天前
maven scope引起的程序崩溃
java·maven
计算机毕设指导62 天前
基于微信小程序的家政服务与互助平台【源码文末联系】
java·spring boot·mysql·微信小程序·小程序·tomcat·maven
SatVision炼金士2 天前
Mac 安装Homebrew记录
java·elasticsearch·macos·maven
刘一说2 天前
JDK、Maven、Spring Boot 各版本兼容性问题
java·spring boot·maven
计算机毕设指导62 天前
基于微信小程序的个性化漫画阅读推荐系统【源码文末联系】
java·python·微信小程序·小程序·tomcat·maven·intellij-idea
Caarlossss3 天前
mybatis
java·数据库·tomcat·maven·mybatis·mybatis-spring
晓13133 天前
后端篇——第一章 Maven基础全面教程
java·maven