当前位置: 首页 > news >正文

maven:迁移到 Maven Central 后 pom.xml的配置步骤

迁移到 Maven Central 后 pom.xml的配置步骤

账户迁移

如果你近期登录maven中央仓库的后台 Nexus 存储库管理器,你会收到如下通知:

OSSRH 服务将于 2025 年 6 月 30 日终止使用。在此处了解有关如何转移到中央发布门户的更多信息。

在这里插入图片描述

6月30日很快就临近了,所以如果你有在maven中央仓库发布版本的需要,就要网站提供的链接中的说明完成账户迁移

迁移说明:

What is different between Central Portal and Legacy OSSRH? - Documentation

迁移过程并不复杂,按照上面的说明做就好了,这不是本文的重点,本文要说明的是,完成迁移后,java项目的pom.xml配置也要做相应的修改,才能使用新的maven中央仓库后台发布版本。

生成token

迁移后,要按下面的说明去生成一个用户token,并更新到$HOME/.m2/settings.xml

Generating a Portal Token for Publishing - Documentation

pom.xml配置

1. 移除旧的发布配置

  • 删除原有的 <distributionManagement> 区块:

    <!-- 删除以下整个配置块 -->
    <distributionManagement><snapshotRepository><id>sonatype-nexus-snapshots</id><name>Sonatype Nexus Snapshots</name><url>https://oss.sonatype.org/content/repositories/snapshots/</url></snapshotRepository><repository><id>sonatype-nexus-staging</id><name>Nexus Release Repository</name><url>https://oss.sonatype.org/service/local/staging/deploy/maven2/</url></repository>
    </distributionManagement>
    

2. 添加新的中央仓库发布插件

<profiles> 的构建插件部分添加 central-publishing-maven-plugin

<plugin><groupId>org.sonatype.central</groupId><artifactId>central-publishing-maven-plugin</artifactId><version>0.7.0</version> <!-- 建议检查最新版本 --><extensions>true</extensions><configuration><publishingServerId>maven-central-release</publishingServerId><autoPublish>false</autoPublish> <!-- 手动发布 --><waitUntil>uploaded</waitUntil> <!-- 等待上传完成 --></configuration>
</plugin>

3. 关键配置说明

  • publishingServerId
    必须与 Maven settings.xml 中的 <server> ID 匹配(包含 Sonatype 账户凭据)
  • autoPublish
    • false (推荐):手动验证后再发布,避免自动发布到生产环境
    • true:构建完成后自动发布(仅限测试环境)
  • waitUntil
    • uploaded:等待文件上传到暂存库后即完成构建
    • published:等待文件发布到中央仓库后才完成构建(已弃用)

central-publishing-maven-plugin插件的完整配置参数说明参见官方说明
《Publishing By Using the Maven Plugin》

4. 发布工作流程

mvn clean deploy        # 将构件上传到暂存库
# 后续手动操作:
# 1. 登录 [Sonatype Central 控制台](https://central.sonatype.com/)
# 2. 验证暂存库中的构件
# 3. 关闭(Close)暂存库
# 4. 发布(Release)到 Maven Central
验证步骤
  1. 确保 ~/.m2/settings.xml 包含:

    <servers><server><!-- 注意这个ID要与上面central-publishing-maven-plugin插件中定义的publishingServerId保持一致 --><id>maven-central-release</id><username>您的Sonatype账号</username><password>您的令牌密码</password></server>
    </servers>
    
  2. 测试部署:mvn clean deploy -DskipTests

  3. 在 Central 控制台 检查暂存库

注意:插件要求 Maven 3.6.3+,建议定期检查插件最新版本以获取安全更新

完整的pom.xml示例可以参见我在码云上的项目:
https://gitee.com/l0km/sql2java/blob/master/pom.xml

http://www.lqws.cn/news/512317.html

相关文章:

  • 马克思主义基本原理期末复习下
  • HarmonyOS开发基础 --鸿蒙仓颉语言基础语法入门
  • 基于元学习的回归预测模型如何设计?
  • 3D重建任务中的显式学习和隐式学习
  • 脉内频率捷变LFM信号
  • 【神经网络预测】基于LSTM、PSO - LSTM、随机森林和多项式拟合的火力机组排放预测
  • 解锁Selenium:Web自动化的常用操作秘籍
  • 超实用教程:n8n + MCP(MinIO Client Processor)构建智能文件处理流水线 - 从零部署到企业级自动化实战​
  • ubuntu20.04安装多版本python时,如何使用sudo python3.10
  • Linux离线搭建Jenkins
  • 有AI后,还用学编程吗?
  • 哈希表理论与算法总结
  • 飞往大厂梦之算法提升-day08
  • Java实现简易即时通讯系统
  • leetcode230-二叉搜索树中第K小的元素
  • OSS与NAS混合云存储架构:非结构化数据统一管理实战
  • 50天50个小项目 (Vue3 + Tailwindcss V4) ✨ | MovieApp(电影卡片组件)
  • AI时代工具:AIGC导航——AI工具集合
  • 60天python训练营打卡day41
  • Oracle LogMiner日志分析工具介绍
  • 数据库AICD特性之--一致性 Consistency
  • 项目需求评审报告参考模板
  • Linux系统---Nginx配置nginx状态统计
  • leetcode173.二叉搜索树迭代器
  • 计算机网络期末复习
  • OSS生命周期管理自动化:7天冷归档+30天低频访问的合规存储策略(结合企业级数据分级场景)
  • 微控制器及应用/嵌入式微控制器 期末复习指南
  • Flask(六) 数据库操作SQLAlchemy
  • order、sort、distribute和cluster by(Spark/Hive)
  • HarmonyOS开发基础 --面向鸿蒙的TypeScript基础语法一文入门