这段时间一直在做项目,也有一个项目伴随产品,其实也就是为了满足个人开发需求的一个工具类,然后想着为了便于协作开发,不如就放在Maven上,这篇文章主要介绍如何把自己的项目或者Starter上传到Maven中央仓库中,并且我也会在文章中说明坑点。
首先,建议准备:
- Github / Gitee 或者其他代码托管平台账号
- Maven
- 电脑能够进入issues.sonatype.org和https://s01.oss.sonatype.org/
- 电脑上有Ggp签名服务(下文会介绍)
首先第一步,前往issues.sonatype.org注册账号,这个步骤不做演示
第二步,创建一个项目
第三步,填写表单(概要和描述自行填写)
第四步,看注释
第五步,验证域名(DNS-TXT或者Github仓库地址)
这里有域名,将域名作为演示
第六步 下载安装Gpg4Win
地址:Gpg4win - Secure email and file encryption with GnuPG for Windows
常规一路走。
第七步 创建密钥
第八步 上传密钥
第九步 Maven Config配置
在setting.xml中添加如下配置
放在servers里面
<server>
<id>ossrh</id>
<username>你的issues.sonatype.org账号</username>
<password>你的issues.sonatype.org密码</password>
</server>
放在profiles里面
<profile>
<id>ossrh</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<!--这里填你安装的GnuPG位置-->
<gpg.executable>H:\GnuPG\bin\gpg.exe</gpg.executable>
<gpg.passphrase>刚才你生成密钥时输入的密码,不是指纹!!!</gpg.passphrase>
<!--这里填你秘钥在磁盘上的位置,可通过上面步骤的 gpg --list-keys找到-->
<gpg.homedir>C:\Users\30398\AppData\Roaming\gnupg</gpg.homedir>
</properties>
第九步 配置pom.xml
IDEA可能会报错,全是goal的,直接无视即可
<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.7.0</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>自己写</groupId>
<artifactId>自己写</artifactId>
<version>1.6.0</version>
<name>KaTool</name>
<description>这里你自己写</description>
<!-- https://mvnrepository.com/artifact/com.qiniu/qiniu-java-sdk -->
<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<!--注意一定要和jdk版本对应,建议1.8,版本太高可能会出现TreeMap的异常-->
<java.version>1.8</java.version>
</properties>
<dependencies>
......
</dependencies>
<!--项目地址-->
<url>例子:https://github.com/Karosown/KaTool</url>
<!--开发者信息-->
<developers>
<developer>
<id>Karos</id>
<name>Karos</name>
<email>mail@wzl1.top</email>
<roles>
<role>Developer</role>
</roles>
<timezone>+8</timezone>
</developer>
</developers>
<!--开源协议...-->
<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>
<!--项目在github或其它托管平台的地址-->
<scm>
<connection>例子:https://github.com/Karosown/KaTool.git</connection>
<developerConnection>例子:scm:git:ssh://git@github.com:Karosown/KaTool.git</developerConnection>
<url>例子:https://github.com/Karosown/KaTool/tree/master 分支一定要带上,当时没带上找</url>
</scm>
<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>
第十步 mvn clean deploy
其实可以省事
输入一次你创建密钥时的密码
然后看下终端,出现这样即可
第十一步 登录s01.oss.sonatype.org
地址:https://s01.oss.sonatype.org/#central-stat
账号密码和issues.sonatype.org的相同
然后,如图所示
其中4和6写一些你的项目说明就可以,release之后记得删除。
最后等待mvn同步就可以了
一般情况下Maven Central Repository Search会先出来
或者去这里看看Maven Central (sonatype.com)
还有一些镜像服务器也可以看到,比如华为的maven镜像
最后https://mvnrepository.com/也可以看到
好了,教程完毕,最后也弱弱的来求个star