为了避免重复造轮子,相信每个 Java 程序员都想打造自己的脚手架或工具包(自己定制的往往才是最适合自己的)。那么如何将自己的脚手架发布到中央仓库呢?下面我们将一步步来实现。
Summary
、Description
、Group Id
、SCM url
以及Project URL
等必要信息,可以参见我之前创建的 Issue:OSSRH-36187。RESOLVED
后,就可以进行下一步操作了。说明:如果你的 Group Id 填写的是自己的网站(我的就是这种情况),Sonatype 的工作人员会询问你那个 Group Id 是不是你的域名,你只需要在上面回答是就行,然后就会通过审核。
gpg --gen-key
说明:其中,E4CE537A3803D49C35332221A306519BAFF57F60 就是公钥
gpg --keyserver hkp://pool.sks-keyservers.net --send-keys
发布公钥:🔔 注意:有可能出现 gpg: keyserver receive failed: No dat 错误,等大约 30 分钟后再执行就不会报错了。
gpg --keyserver hkp://pool.sks-keyservers.net --recv-keys
查看公钥是否发布成功。说明:<snapshotRepository>
指定的是 snapshot 仓库地址;<repository>
指定的是 staging (正式版)仓库地址。需要留意的是,这里的 id 需要和 settings.xml 中的<server>
的 id 保持一致。
mvn clean deploy -P sonatype
命令就可以发布 jar 包到中央仓库了:说明:-P 参数后面的 sonatype 需要和 pom.xml 中<profile>
的 id 保持一致,才能激活 profile。
工作中,Java 程序员开发的商用 Java 项目,一般不想发布到中央仓库,使得人人尽知。这时,我们就需要搭建私服,将 maven 服务器部署在公司内部网络,从而避免 jar 包流传出去。怎么做呢,让我们来一步步学习吧。
./nexus
,可以查看允许执行的参数,如下所示,含义可谓一目了然:./nexus start
http://<ip>:8081
,欢迎页面如下图所示:说明:
maven-releases - 存储私有仓库的发行版 jar 包 maven-snapshots - 存储私有仓库的快照版(调试版本) jar 包 maven-public - 私有仓库的公共空间,把上面三个仓库组合在一起对外提供服务,在本地 maven 基础配置 settings.xml 中使用。
settings.xml
:🔔 注意:
<repository>
和<snapshotRepository>
的 id 必须和settings.xml
配置文件中的<server>
标签中的 id 匹配。<url>
标签的地址需要和 maven 私服的地址匹配。
-P zp
来激活 profile。