SpringBoot —— maven中央仓库发布

2021-10-05  本文已影响0人  holyhigh2

开发环境

请见《项目部署及打包》
OSSRH指南

概述

本文主要描述基于IDEA + Maven的项目打包、本地测试、snapshot发布、release发布等内容。
本文主要记录基于IDEA + Maven如何提交开源库到中央仓库的过程,包括

中央仓库

代码仓库为开发者提供统一、便捷、规范的代码服务。注意,这里的仓库并不是git/svn一类的源码管理库,而是提供插件安装、模块扩展、 快速构建的模块服务库,就像npmjs样。

账号申请

使用所有公共服务前,第一步总是注册账号


注册成功

maven配置

找到IDEA的maven设置或自己重写一个


IDEA maven设置

settings.xml中有很多配置,但关系到发布仓库的只需要指定server即可

<server> 
  <id>ossrh</id>
  <username>holyhigh</username>  
  <password>holyhighspwd</password> 
</server>

注意配置文件中的id,他必须和pom中的发布管理仓库id一致

pom配置

为了提供库信息,pom文件中需要加入一些描述信息包括

<!-- 许可协议 -->
<licenses> 
  <license> 
    <name>MIT License</name>  
    <url>http://www.opensource.org/licenses/mit-license.php</url> 
  </license> 
</licenses>
<!-- 开发者信息 -->
<developers> 
  <developer> 
    <name>holyhigh</name>  
    <email>holyhigh2@hotmail.com</email> 
  </developer> 
</developers>
<!-- 源码管理 -->
<scm> 
  <connection>https://github.com/holyhigh2/juth2-server</connection>  
  <developerConnection>https://github.com/holyhigh2/juth2-server.git</developerConnection>  
  <url>https://github.com/holyhigh2/juth2-server/tree/master</url> 
</scm>
<!-- 发布管理 -->
<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>

其他项目配置可以参考开发自启动的boot依赖包

与审核人员沟通

人工审核这点显然没有npmjs这样自动审核来的方便,但也许仓库管理者觉得这样可以避免一些版权问题或者恶意注册 —— 比如管理员会要求你证明源码库是你自己的源码库。
首先,你需要登录sonatype(按照本文开头的OSSRH指南)并创建一个发布库的“问题”(没错,要发布库需要发布一个问题并等待管理员接单)


创建问题

然后管理员会要求你验证源码库


验证要求
按要求执行完后,你可以通过注释留言或者点击“响应”按钮通知管理员复核。然后他会告诉你下一步怎么做
可以发布许可

此时,你可以通过IDEA集成的maven工具上传代码了

snapshot发布/测试

在发布正式release之前,通常会发布预览版/公测版,也就是snapshot。它的好处是可以方便的快速更迭 —— 只需要写好settings & pom文件就可以一键发布了


一键部署snapshot

发布成功后就可以在主项目中引入这个依赖进行使用/测试了

<dependency>
    <groupId>com.github.holyhigh2</groupId>
    <artifactId>juth2-server</artifactId>
    <version>0.1.2-SNAPSHOT</version>
</dependency>

release发布

经过snapshot测试后就可以发布稳定版本。

上一篇下一篇

猜你喜欢

热点阅读