fastjson jar包_发布jar包到maven中央仓库

前言

我们知道在 maven 中引入第三方 jar 包是非常简单的,只需要使用 groupId+artifactId+version 就能从 maven 仓库中下载下来对应的 jar 包。

例如:引入 fastjson 的 jar 包

<dependency>
<groupId>com.alibabagroupId>
<artifactId>fastjsonartifactId>
<version>1.2.46version>
dependency>

那如果想要发布自己的 jar 包到 maven 仓库应该如何操作呢。

创建 issue

要发布 jar 包到 maven 仓库首先需要人工审核,在审核过了的话才可以进行后续发布 jar 包的操作。首先需要在https://issues.sonatype.org/secure/Dashboard.jspa上注册一个账号,登录之后点击Create,在弹出来的界面中填写响应的信息

4155356f440e735d2d755852aeef4149.png

  • Project 选择 Community Support,Issue type 选择 New Project。

  • 注意 Group Id,如果有对应域名的话则使用域名对应的 Group Id(例如 netty 项目的域名是 netty.io,则 Group Id 为 io.netty),没有的域名的话最好就填com.github.xxx,因为在 issue 里会有人问你是否拥有 Group Id 对应的域名,没有的话是审核不过的,而托管在 github 上的话就可以直接使用 github 的域名来完成审核。

issue 审核

创建成功后等 1-2 个小时左右就会有工作人员评论 issue,问你是否持有域名。

50016e2a374e606d62eb174ef7db8ae6.png

如果是用com.github.xxx的 Group Id,就回复要使用com.github.xxx作为你的域名,否则有域名就回复有就好,接着等待工作人员确认(我等了一天),确认成功之后 issue 的状态就会变成RESOLVED,这个时候就有资格上传 jar 包到 maven 仓库了。

gpg 管理密钥

在上传 jar 包之前,先要生成 gpg 工具生成 RSA 密钥对,并把公钥上传到公共密钥服务器,这样在发布 jar 包的时候能校验用户的身份。

  1. 下载 gpg 工具,下载地址:https://www.gnupg.org/download/index.html,下载对应操作系统的版本然后进行安装。

  2. 验证安装和上传生成的公钥

  3. 验证 gpg 是否安装成功

    gpg --version
  4. 生成 RAS 密钥对

    gpg --gen-key

    接着需要填写名字和邮箱等等基本信息,这些都不是重点,最主要的是有个Passphase的选项在填完之后记下来,到时候发布 jar 包的时候要用到。

  5. 查看生成的密钥,并上传至密钥服务器 需要上传到服务器的就是 pub 里的公钥串FC27E7C61FC5D176DD7F67198C6EFA8E944CD6BA

    gpg --list-keys
    ----------------------------------------------
    pub rsa2048 2018-07-19 [SC] [expires: 2020-07-18]
    FC27E7C61FC5D176DD7F67198C6EFA8E944CD6BA
    uid [ultimate] liwei <liwei2633@163.com>
    sub rsa2048 2018-07-19 [E] [expires: 2020-07-18]

    上传公钥至密钥服务器,国内我测试了的服务器基本就这个hkp://keyserver.ubuntu.com:11371能用。

    gpg --keyserver hkp://keyserver.ubuntu.com:11371 --send-keys FC27E7C61FC5D176DD7F67198C6EFA8E944CD6BA

    上传完后验证是否成功

    gpg --keyserver hkp://keyserver.ubuntu.com:11371 --receive-keys FC27E7C61FC5D176DD7F67198C6EFA8E944CD6BA

    验证成功

    gpg: Total number processed: 1
    gpg: unchanged: 1

maven 配置

  1. 修改项目中的pom.xml文件,添加部署相关配置,这里引用贴下我的配置,只需要替换下相应的内容就好。

<name>pdown-corename>
<description>HTTP high speed downloaderdescription>
<url>https://github.com/proxyee-down-org/pdown-coreurl>

<licenses>
<license>
<name>The MIT License (MIT)name>
<url>http://opensource.org/licenses/mit-license.phpurl>
license>
licenses>

<developers>
<developer>
<name>monkeyWiename>
<email>liwei2633@163.comemail>
developer>
developers>

<scm>
<connection>scm:git:https://github.com/proxyee-down-org/pdown-core.gitconnection>
<developerConnection>scm:git:https://github.com/proxyee-down-org/pdown-core.gitdeveloperConnection>
<url>https://github.com/proxyee-down-org/pdown-coreurl>
scm>

<profiles>
<profile>
<id>releaseid>
<build>
<plugins>

<plugin>
<groupId>org.apache.maven.pluginsgroupId>
<artifactId>maven-compiler-pluginartifactId>
plugin>

<plugin>
<groupId>org.apache.maven.pluginsgroupId>
<artifactId>maven-source-pluginartifactId>
<executions>
<execution>
<phase>packagephase>
<goals>
<goal>jar-no-forkgoal>
goals>
execution>
executions>
plugin>

<plugin>
<groupId>org.apache.maven.pluginsgroupId>
<artifactId>maven-javadoc-pluginartifactId>
<executions>
<execution>
<phase>packagephase>
<goals>
<goal>jargoal>
goals>
execution>
executions>
plugin>

<plugin>
<groupId>org.apache.maven.pluginsgroupId>
<artifactId>maven-gpg-pluginartifactId>
<executions>
<execution>
<id>sign-artifactsid>
<phase>verifyphase>
<goals>
<goal>signgoal>
goals>
execution>
executions>
plugin>
plugins>
build>
<distributionManagement>
<repository>
<id>releasesid>
<url>https://oss.sonatype.org/service/local/staging/deploy/maven2/url>
repository>
<snapshotRepository>
<id>snapshotsid>
<url>https://oss.sonatype.org/content/repositories/snapshots/url>
snapshotRepository>
distributionManagement>
profile>
profiles>
  1. 把之前创建 issue 时注册的账号配置到 maven 的配置文件里,找到 maven 安装目录下conf/setting.xml文件,在标签里添加。

<server>
<id>releasesid>
<username>username>
<password>password>
server>
<server>
<id>snapshotsid>
<username>username>
<password>password>
server>

把用户名和密码填好即可。

部署 jar 包

  1. 使用下面的命令行,会需要输入之前用 gpg 生成密钥时输入的 Passphase,也有可能会弹窗出来提示输入 Passphase。
    (我这加了-Dgpg.passphrase=YourPassphase 选项并没有生效,还是会弹窗出来提示输入 Passphase)

mvn clean deploy -P release -Dgpg.passphrase=YourPassphase
  1. 如果部署成功的话使用创建 issue 的帐号登录这个网址https://oss.sonatype.org/,然后看图操作。

    cc3e7e2e290feb65b8f6ec8d1851d909.png

  2. close 完了系统会验证 jar 包,点击刷新可以看到最新的进度,当全部验证通过的时候,状态会变成closed,然后再选中文件Release就发布完成了。然后等个几个小时就可以在中央仓库搜索到自己发布的 jar 包了。

    83ac0073e1ef0a1e42f3a2f75b2c7a01.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值