前言
对于工作了多年的老程序员来说,往往会总结出一些比较好用的开发工具包。那么如果把这些好的工具插件共享出来供大家快速的使用呢,最好的方式就是将这些工具插件上传到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