如何上传自己的项目到Maven仓库

这段时间一直在做项目,也有一个项目伴随产品,其实也就是为了满足个人开发需求的一个工具类,然后想着为了便于协作开发,不如就放在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

  • 微信或QQ扫一扫

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

目录