maven项目上传到服务器要注意什么,将项目发布到Maven中央仓库

先前都是配置pom.xml从Maven中央仓库下载依赖包,幻想着哪一天咱也有个包可以让别人自动下载啊,好高大上的感觉。

现已成功利用Sonatype OSSRH将fuzhutech-ueditor提交给Maven的中央仓库。特发表此文以做纪念。对于我这样的新手而言,第一次发布项目到中央仓库,真不是一件容易的事情,所以很有必要整理步骤并说明一下在发布过程中遇到的一些问题。

一、注册账号

注册后将信息保存到maven的conf/settings.xml中

oss

用户名

密码

二、创建工程单

该步骤字面意思就是Create 一个 issue,我们要New 一个 Project(提出一个发布申请)。实质就是申请并占有坐标Group Id。我的Issue,https://issues.sonatype.org/browse/OSSRH-31467,参考说明各项字段内容:

Project:Community Support - Open Source Project Repository Hosting (OSSRH)

Issue Type:New Project

Summary:add a new project to the repository

备注:随意写即可,仔细观察发现大家写的啥都有

Description:Various open source project,fuzhutech.com is my own domain.thank you!

备注:可不填,有的声明own domain,但系统还是会让你确认是否拥有。

Group Id:com.fuzhutech

备注:比较关键,系统会推荐是否选择com.github.fuzhutech

其他的就没有什么了,提交之后就等工作人员离开确认吧,有时候工作人员会问你些你没有明确的内容,只需要回答就好。

大概30分钟,系统自动回复

Do you own the domain fuzhutech.com? If not, please read:

http://central.sonatype.org/pages/choosing-your-coordinates.html You

may also choose a groupId that reflects your project hosting, in this

case, something like io.github.fuzhutech or com.github.fuzhutech

我提交了,提交一条Comment

Yes, we own the domain fuzhutech.com.

第二天收到回复,审批初步通过了。

Configuration has been prepared, ......

三、上传前的准备

在等待Issue的过程中,需要准备GPG以便对发布的文件进行签名。小编直接在http://www.gpg4win.org/downlo... 下载Gpg4win-Vanilla版来使用。

1. 查看是否安装成功

gpg --version

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

2. 生成密钥对

gpg --gen-key

此时需要输入realName、Email、Comment等字段,其它字段可使用默认值,此外,还需要输入一个 Passphase,相当于一个密钥库的密码,最好记下来,因为后面会用到。

3. 查看公钥

gpg --list-keys

输出如下信息:

pub 2048R/DEF22C2D 2017-05-23

uid [ultimate] fuzhutech (fuzhutech)

sub 2048R/A8C6E2E2 2017-05-23

这里的公钥的 ID 是:DEF22C2D。

4. 将公钥发布到 PGP 密钥服务器

gpg --keyserver hkp://pool.sks-keyservers.net --send-keys DEF22C2D

此后,可使用本地的私钥来对上传构件进行数字签名,而下载该构件的用户可通过上传的公钥来验证签名,也就是说,大家可以验证这个构件是否由本人上传的,因为有可能该构件被坏人给篡改了。

5. 查询公钥是否发布成功

gpg --keyserver hkp://pool.sks-keyservers.net --recv-keys DEF22C2D

从key server上通过公钥 ID 来接收公钥,此外,也可以到sks-keyservers.net上通过公钥 ID 去查询。后续OSS进行签名验证成功的前提就是公钥发布成功。

6. 在settings.xml中配置gpg的签名

ossrh

true

gpg2

the_pass_phrase

ossrh

the_pass_phrase配置的是生成密钥对时输入的Passphase。

四、配置pom.xml

pom.xml在Maven中央库的审核比较严格,必须有固定的一些字段,包括:name、description、url、licenses、developers、scm 等基本信息。

distributionManagement则是定义了release和snapshot发布的地址,这个在Issue通过审核后工作人员会给你,还有就是snapshotRepository 与 repository 中的 id 一定要与 setting.xml 中 server 的 id 保持一致。

因为这些执行通常都独立于标准构建流程,所以把他们移动到一个profile,发布需要的source插件、javadoc插件、gpg插件都在这个profile里,这样只有在发布的时候才会生成源码包、文档API包和做gpg签名。

五、上传到OSS

待项目编写完成,就可以进行上传、发布了。在命令行进入项目pom.xml所在路径,执行命令提交到OSS服务器。

1.提交一个snapshot版本,修改version加一个-SNAPSHOT:

mvn clean deploy

2.发布一个release版本,修改version 不要加-SNAPSHOT

mvn clean deploy -P release

可以手动修改,也可以执行

mvn versions:set -DnewVersion=1.0.0

注意:此时上传的构件并未正式发布到中央仓库中,只是部署到 OSS 中了,下面才是真正的发布。

六、在OSS中发布

上传成功后需要在OSS系统中对操作进行确认,登录https://oss.sonatype.org/,在左边菜单找到“Staging Repositories”,点击,在右边上面一点有一个输入搜索框输入你的groupid进行快速定位,可以发现这时你的构件状态是“open”,勾选你的构件,查看校验的结果信息,如果没有错误就可以点击刚才勾选的checkbox上面右边一点的“close”按钮,在弹出框中“confirm”。

接下来系统会自动验证有效性,如果你的Group Id和pom.xml没有错误,状态会自动变成closed,如果有问题,会在下面提示你那里有问题,加入有问题你可以点击drop按钮删掉这个构件,修改后重新执行步骤五。

成功后状态会变为“closed”,点击release按钮发布。

七、通知sonatype首次发布

回到issue系统,找到你的那个申请的issue,写个comment,I promoted my first release, thanks,说明首次发布完成了,等待他们审核。

审核通过后我们就可以在中央库搜索到我们的GroupId!搜索的地址是: http://search.maven.org/

八、感谢

成功的发布离不开各个前台帖子的指导,虽然我没有按照帖子一步成功,但我希望可以帮助一些人少走一些弯路,小白不易,且行且珍惜。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值