背景
对于个人开发的开源Java项目,光是放到github等代码托管网站上仍然是不够的。 比较友好的方式应该将项目发布到maven仓库,在README中告诉用户如何引入项目依赖。 这件事情本身也是属于做过则知道,不做不清楚。本文就这其中过程作整理与介绍。
流程
由于是对公众开放开源项目,所以一般选择发布到maven中央仓库。
准备工作
注意:第2步的提交申请过后,需要等待ISSUE状态变为RESOLVED,一般最多需要两个工作日,短的话可能几分钟就搞定了,这一步的时间通常取决于项目的groupId是什么。对于像是项目托管网站+用户名那种,通常会比较快。其他的一些的话往往会人工审查是否具有域名所属权。
发布
发布的流程在官方网页上也有讲述,这里简要描述下,可供参考。
POM配置
在POM里加上repository信息
1
2
3
4
5
6
7
8
9
10
<distributionManagement>
<snapshotRepository>
<id>ossrh</id>
<url>https://oss.sonatype.org/content/repositories/snapshots</url>
</snapshotRepository>
<repository>
<id>ossrh</id>
<url>https://oss.sonatype.org/service/local/staging/deploy/maven2/</url>
</repository>
</distributionManagement>
配置~/.m2/settings.xml文件,在servers组里边加上,注意这里面server下的id需要与项目POM中snapshotRepository与repository的id保持一致。
1
2
3
4
5
6
7
8
<servers>
<server>
<id>ossrh</id>
<username>你的JIRA账号</username>
<password>你的JIRA密码</password>
</server>
</servers>
SNAPSHOT
发布SNAPSHOT比较简单,如上配置完毕后,直接运行
1
mvn clean deploy
即可。需要注意,发布SNAPSHOT的话,版本不会同步到中央仓库。对于需要依赖发布的SNAPSHOT的项目,需要在POM里面配上https://oss.sonatype.org/content/repositories/snapshots这个repository。
发布成功的SNAPSHOT版本可以在快照仓库找到。为了找的快一些,可以直接在网页后缀上加上groupId
正式版本
1
mvn clean deploy -P release
最后的工作
在成功之后,可以在maven中央仓库中找到你的artifact
