将 Smart 发布到 Maven 中央仓库

Posted OSC开源社区

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将 Smart 发布到 Maven 中央仓库相关的知识,希望对你有一定的参考价值。

很多朋友都给我提过同样的建议:

建议把 Smart 的 jar 包放到 Maven 中央仓库吧!放在 OSC Maven 里我下载不到。

需要澄清的是,并不是从 OSC Maven 下载不到 Smart 构件,而是这些构件属于第三方构件,存放在 OSC Maven 的第三方仓库里,所以我们需要在 pom.xml 或 setting.xml 里配置:

<repository>
    <id>osc_thirdparty</id>
    <url>http://maven.oschina.net/content/repositories/thirdparty/</url>
</repository>

然而,很多朋友并不知道需要这样配置,所以就产生了那个建议。

此外,需要注意的是,OSC Maven 的第三方仓库只能存放 RELEASE 构件,而不能存放 SNAPSHOT 构件。

为了让大家能够更方便的使用 Smart,我做了一个慎重的决定:将 Smart 构件发布到 Maven 中央仓库中!

将构件放入中央仓库是一件非常麻烦的事情,需要做很多准备工作,我会尽可能有条理地展现每个步骤,就是为了让大家少走弯路,节省更多的时间,去做更重要的事情。

现在就开始吧!


说到中央仓库,不得不说 Sonatype 这家公司,因为中央仓库就是这家公司砸钱搞的,并且免费向全球所有的 Java 开发者提供构件托管服务,这对于我们而言,简直就是“福利”啊!

Sonatype 官网:http://www.sonatype.org/

对于向我这样的新手而言,第一次将构件发布到中央仓库,真的不是一件非常轻松的事情,所以现在非常有必要把些步骤记下来,这样可以节省大家的时间,做更多重要的事情。

具体的操作步骤如下:

第一步:注册一个 Sonatype 用户

这里的用户名与密码是非常重要的,后面会用到,一定要保存好。

此外,Sonatype 还提供了一个名为 OSS 的系统:

Sonatype OSS:https://oss.sonatype.org

在 OSS 中可以查询到全世界已发布的构件,当然它还有另外一个作用,后面会提到。

第二步:创建一个 Issue

此时,相当于提交一个申请。其中,最重要的信息就是 groupId 了,对于这个 groupId,我必要多说几句:

因为我的 Smart 项目源码托管在 OSC Git 上,其域名为 oschina.net,所以 Smart 的 groupId 应该是 net.oschina.huangyong。很明显,这种 groupId 不是我想要的,所以我需要购买一个属于 Smart 的域名。

因为 Smart 是一个开源项目,属于非盈利组织,所以域名后缀应该是 org 的,于是第一反应是想买 smart.org 域名。在 万网 上查询了一下,发现这个域名已经被人买了,没办法,只能换一个域名了。经大家一番讨论后,决定 Smart 的域名为 smart4j.org,在万网上的价格是 139 元/年。经 大漠 的推荐,最后在 GoDaddy 上以 87 元/年的价格购买了该域名,在 GoDaddy 上是可以使用支付宝交易的。

这样一来,Smart 在中央仓库里就可以申请到名为 org.smart4j 的 groupId 了。

第三步:等待 Issue 审批通过

一般需要 1 ~ 2 天时间,需要耐心等候,审批通过后会发邮件通知,此外,在自己提交的 Issue 下面会看到 Sonatype 工作人员的回复。

第四步:使用 GPG 生成密钥对

如果是 Windows 操作系统,需要下载 Gpg4win 软件来生成密钥对。建议大家下载 Gpg4win-Vanilla 版本,因为它仅包括 GnuPG,这个工具才是我们所需要的。

安装 GPG 软件后,打开命令行窗口,依次做以下操作:

1. 查看是否安装成功

gpg --version

能够显示 GPG 的版本信息,说明安装成功了。

2. 生成密钥对

gpg --gen-key

此时需要输入姓名、邮箱等字段,其它字段可使用默认值,此外,还需要输入一个 Passphase,相当于一个密钥库的密码,一定不要忘了,也不要告诉别人,最好记下来,因为后面会用到。

3. 查看公钥

gpg --list-keys

输出如下信息:

C:/Users/huangyong/AppData/Roaming/gnupg/pubring.gpg
----------------------------------------------------
pub   2048R/82DC852E 2014-04-24
uid                  hy_think <hy_think@163.com>
sub   2048R/3ACA39AF 2014-04-24

可见这里的公钥的 ID 是:82DC852E,很明显是一个 16 进制的数字,马上就会用到。


更多内容请点击阅读原文。


-----------------------------------------------------------


以上是关于将 Smart 发布到 Maven 中央仓库的主要内容,如果未能解决你的问题,请参考以下文章

Dev 日志 | 如何将 jar 包发布到 Maven 中央仓库

将 jar 包发布到Maven中央仓库

发布Artifact到Maven中央仓库

发布Artifact到Maven中央仓库

如何发布Maven依赖到中央仓库

怎么自定义maven的中央仓库位置