将自己的java项目发布到maven中央仓库

介绍

将自己做的开源项目发布到中央仓库,方便其他开发者引用
博主开源项目:
https://gitee.com/xuelingkang/spring-boot-demo
https://gitee.com/xuelingkang/react-demo
https://gitee.com/xuelingkang/zookeeper
https://gitee.com/xuelingkang/sftp
https://gitee.com/xuelingkang/websocket
演示地址:
https://demo.xzixi.com

步骤

  1. 将项目上传到github(博主用的码云)。
  2. 注册sonatype
  3. 在sonatype新建issue,等待审批。
  4. 安装gnu pg
  5. 创建并上传密钥。
  6. 修改maven的settings.xml和项目的pom.xml配置。
  7. 上传项目。

将项目上传到github

在github上创建仓库,将本地项目上传到仓库中。

注册sonatype

密码要求复杂,最后记到记事本上。

在sonatype新建issue

  1. 登陆sonatype,点击头部导航新建按钮
    新建
  2. 填写表单,参考下图
    issue表单
    新建之后等待审批就行,一般很快,会有邮件通知,到这里可以先进行后面的步骤,等审批之后再继续
    参考审批过程,中间需要检查是否Group Id域名的拥有者,添加txt解析,然后在issue上回复就行。

安装gnu pg

下载地址
博主用的windows
gpg下载
下载完成后双击安装,默认会添加环境变量
安装完成后执行gpg --version检查一下,如果找不到,手动将安装目录下的bin目录追加到环境变量的path路径下

创建并上传密钥

  1. 打开cmd窗口,执行gpg --full-gen-key,导航很容易读懂,看不懂直接点回车全部默认也行
  2. 最后会提示输入passphrase,设置之后记录下来,后面需要用
  3. 在cmd窗口执行gpg --list-key
    listkey
  4. 上传密钥
gpg --keyserver http://pool.sks-keyservers.net:11371 --send-keys B423C75169B2BD8AF0E1B4E427410B1A53117919
gpg --keyserver http://keyserver.ubuntu.com:11371 --send-keys B423C75169B2BD8AF0E1B4E427410B1A53117919
gpg --keyserver http://keys.gnupg.net:11371 --send-keys B423C75169B2BD8AF0E1B4E427410B1A53117919

命令格式:

gpg --keyserver 服务器地址 --send-keys 上图第二个框框中的内容

需要上传到的服务器地址有很多,博主没有记录,可以先跳过,在后面执行上传项目时会报出来那些服务器没有上传密钥,再将所有服务器都传一下就行了

修改settings.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>ossrh</id>
      <username>sonatype账号</username>
      <password>sonatype密码</password>
    </server>
  </servers>
  <profiles>
    <profile>
      <id>ossrh</id>
      <activation>
        <activeByDefault>true</activeByDefault>
      </activation>
      <properties>
        <gpg.passphrase>生成密钥时输入的passphrase</gpg.passphrase>
        <!-- gpg.exe的绝对路径,在gpg安装目录下的bin目录中 -->
        <gpg.executable>D:\Program Files (x86)\GnuPG\bin\gpg.exe</gpg.executable>
        <!-- 上一步执行gpg --list-key命令输出的路径,一般在C:\User\当前用户\AppData\Roaming\gnupg -->
        <gpg.homedir>C:\Users\Administrator\AppData\Roaming\gnupg</gpg.homedir>
      </properties>
    </profile>
  </profiles>
</settings>

修改pom.xml

参考pom.xml
如果是聚合工程,需要将子模块的<name><name>属性都设置上
<version><version>填写正式的版本号,不要用SNAPSHOT
没有翻墙下载插件可能会慢,添加上阿里代理的仓库就行

<repositories>
    <repository>
        <id>public</id>
        <name>public</name>
        <url>https://maven.aliyun.com/repository/public</url>
        <releases>
            <enabled>true</enabled>
        </releases>
        <snapshots>
            <enabled>false</enabled>
        </snapshots>
    </repository>
</repositories>
<pluginRepositories>
    <pluginRepository>
        <id>gradle</id>
        <name>gradle</name>
        <url>https://maven.aliyun.com/repository/gradle-plugin</url>
        <releases>
            <enabled>true</enabled>
        </releases>
        <snapshots>
            <enabled>false</enabled>
        </snapshots>
    </pluginRepository>
</pluginRepositories>

maven-release-plugin插件下可以设置不需要上传的文件

上传项目

在项目目录下执行maven命令

mvn clean deploy -Dmaven.test.skip=true

应该会报出很多服务器没有上传密钥,返回上传密钥那一步,将报出来的服务器都上传一遍即可。
其他可能会报pom.xml配置错误,按要求改就行
成功之后等待同步到中央仓库就行,同步会有延迟,一两个小时之后就可以到https://repo.maven.apache.org/maven2查看。

手动发布

按照以上步骤,项目发布到sonatype后会自动close,然后release,但是由于网络延迟等原因,有可能会失败。

  1. 打开https://oss.sonatype.org并登录,切换到stagingRepositories菜单
  2. 找到自己的项目,用maven坐标搜索,选中之后点击close按钮,关闭需要时间,可以等一会再回来看
  3. 等待项目关闭完成之后,选中项目点击release按钮,发布需要时间,点击发布之后就不需要操作了,发布完成后会自动删除项目

参考链接

https://www.jdon.com/idea/publish-to-center-maven.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值