将 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 中央仓库的主要内容,如果未能解决你的问题,请参考以下文章