java开发中没少用各类jar包,特别是使用maven,gradle 构建工具,方便有效。老是只取不予,也应该懂得奉献,当你写好了一个十分好用的jar包,想贡献出去给你们使用的时候,应该怎么作呢?固然是发布到maven的中央仓库了html
开始要注意这个几个Maven相关地址:java
就是申请上传资格和groupId 的地方,注册帐号、建立和管理issue,Jar包的发布是以解决issue的方式起步的git
把jar包上传到这里,Release 以后就会同步到maven中央仓库。github
最终工件能够在这里搜索到。apache
第一访问工单管理界面,须要提早注册(sign up), 它是工单管理和构建仓库身份验证.点击"Sign up "json
点击header 头 “create”按钮建立一个工单,主要用途注册你上传jar包基本信息,主要groupid,经过审核有两个目的:1.防止重复,约束groupid规范,定义grupid最好有所属的域名
好比:你申请 com.hippo 那么你最有有hippo.com 这个域名的全部权。若是你不符合还有一个解决办法,groupid 申请以:com.github.{帐号名来定义}ubuntu
建立成功后,接下来等待后台管理员审核,通常一个工做日之内,当Issue的Status变为RESOLVED后,就能够进行下一步操做了,不然,就等待… segmentfault
审批经过后,一般管理员会给你留言配置方法,大致文字以下:windows
Configuration has been prepared, now you can: Deploy snapshot artifacts into repository https://oss.sonatype.org/content/repositories/snapshots Deploy release artifacts into the staging repository https://oss.sonatype.org/service/local/staging/deploy/maven2 Promote staged artifacts into repository 'Releases' Download snapshot and release artifacts from group https://oss.sonatype.org/content/groups/public Download snapshot, release and staged artifacts from staging group https://oss.sonatype.org/content/groups/staging please comment on this ticket when you promoted your first release, thanks
配置已经准备好了,如今你能够: 将快照构件部署到存储库https://oss.sonatype.org/content/repositories/snapshots 将发布工件部署到分段存储库中https://oss.sonatype.org/service/local/staging/deploy/maven2 将分阶段的工件推入存储库“发布” 从组https://oss.sonatype.org/content/groups/public下载快照并发布工件 从暂存组https://oss.sonatype.org/content/groups/staging下载快照,发布和暂存的工件 请在您宣传第一个版本时对此票发表评论,谢谢bash
在工程的pom.xml文件中,引入Sonatype官方的一个通用配置oss-parent,这样作的好处是不少pom.xml的发布配置不须要本身配置了
<parent> <groupId>org.sonatype.oss</groupId> <artifactId>oss-parent</artifactId> <version>7</version> </parent>
并增长Licenses、SCM、Developers信息
<licenses> <license> <name>The Apache Software License, Version 2.0</name> <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url> <distribution>repo</distribution> </license> </licenses> <scm> <tag>master</tag> <url>git@github.com:cloudnil/marathon-client.git</url> <connection>scm:git:git@github.com:cloudnil/marathon-client.git</connection> <developerConnection>scm:git:git@github.com:cloudnil/marathon-client.git</developerConnection> </scm> <developers> <developer> <name>cloudnil</name> <email>cloudnil@126.com</email> <organization>CloudNil</organization> </developer> </developers>
setting.xml放在Maven安装文件/conf目录下
<servers> <server> <id>sonatype-nexus-snapshots</id> <username>Sonatype 帐号</username> <password>Sonatype 密码</password> </server> <server> <id>sonatype-nexus-staging</id> <username>Sonatype 帐号</username> <password>Sonatype 密码</password> </server> </servers>
若是是使用的windows,建议下载git客户端,能够在git bash 提供窗口操做,在命令行中执行 ** gpg --gen-key** 生成,过程当中须要填写名字、邮箱等,其余步骤可使用默认值,不过有个叫:Passphase的参数须要记住,这个至关因而是密钥的密码,下一步发布过程当中进行签名操做的时候会用到
这步就简单了,就是一套命令:
mvn clean deploy -P sonatype-oss-release -Darguments="gpg.passphrase=密钥密码"
默认启动:maven-javadoc-plugin 插件 若是要忽略,能够跟参数:
-Dmaven.javadoc.skip=true
进入https://oss.sonatype.org/#stagingRepositories查看发布好的构件,点击左侧的Staging Repositories,通常最后一个就是刚刚发布的jar了,此时的构件状态为open。 打开命令行窗口,查看gpg key并上传到第三方的key验证库:
gpg --list-keys C:/Users/VF/AppData/Roaming/gnupg/pubring.gpg --------------------------------------------- pub 2048R/824B4D7A 2016-01-06 uid [ultimate] cloudnil <cloudnil@126.com> sub 2048R/7A10AD69 2016-01-06 gpg --keyserver hkp://keyserver.ubuntu.com:11371 --send-keys 824B4D7A gpg: sending key 824B4D7A to hkp server keyserver.ubuntu.com
以上操做完成回到 https://oss.sonatype.org/#stagingRepositories,选中刚才发布的构件,并点击上方的close–>Confirm,在下边的Activity选项卡中查看状态,当状态变成closed后,执行Release–>Confirm,并在下边的Activity选项卡中查看状态,成功后构件自动删除,一小段时间(约1-2个小时)后便可同步到maven的中央仓库。