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

前言

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

一、准备工作

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

二、注册issues.sonatype.org账号

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

怎么将自己的Maven项目上传到Maven中央仓库/Maven阿里云云效仓库_第4张图片

三、下载安装Gpg4Win

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

  • 创建密钥
    怎么将自己的Maven项目上传到Maven中央仓库/Maven阿里云云效仓库_第5张图片
    怎么将自己的Maven项目上传到Maven中央仓库/Maven阿里云云效仓库_第6张图片
    怎么将自己的Maven项目上传到Maven中央仓库/Maven阿里云云效仓库_第7张图片
  • 上传密钥
    怎么将自己的Maven项目上传到Maven中央仓库/Maven阿里云云效仓库_第8张图片

四、配置本地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

执行完成会弹窗 输入第一次生成密匙的密码
怎么将自己的Maven项目上传到Maven中央仓库/Maven阿里云云效仓库_第9张图片

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

账号密码同第一步注册的issues.sonatype.org
按照下图步骤一步一步操作
怎么将自己的Maven项目上传到Maven中央仓库/Maven阿里云云效仓库_第10张图片
在点击Close 验证的时候可能会出现错误,导致不能执行下一步,这个时候需要调整项目pom配置,调整好后,重新发布,再次验证不报错即可
怎么将自己的Maven项目上传到Maven中央仓库/Maven阿里云云效仓库_第11张图片

八、查看结果

发布完后,大概半小时后可以在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

你可能感兴趣的:(微服务,maven,java)