讲师中心 微信公众号
AI工具推荐 视频效率加速

Maven pom.xml distributionManagement配置 发布Jar包到私服

老辰小哥_4526

老辰小哥_4526

发布时间:2026-02-24 13:16:02

|

701人浏览过

|

来源于php中文网

原创

私服deploy失败最常见原因是distributionManagement中repository URL拼写错误,如缺少/repo/maven-releases/后缀或协议误用http而非https,Maven报认证失败或405实为URL错误。

maven pom.xml distributionmanagement配置 发布jar包到私服

私服地址写错导致 deploy 一直失败

最常见的情况是 distributionManagement 里 repository 或 snapshots/repository 的 url 拼错了,比如少个 /repository/maven-releases/ 后缀,或者协议写成 http 而不是私服要求的 https。Maven 不会明确告诉你“URL 不存在”,而是报一堆认证失败或 405 错误,让人误以为是权限问题。

实操建议:

  • 先用 curl -I <url></url> 检查 URL 是否可访问(注意:有些私服会拦截非浏览器请求,但至少能确认 404 还是 401)
  • url 必须和 Nexus/Artifactory 界面里 “Copy Dependency Coordinates” 功能给出的发布路径严格一致
  • 快照版和正式版必须分两个 repository 块,且 id 不能重复——否则 Maven 会随机选一个,部署到错误仓库

settings.xml 里的 server 配置不匹配 pom.xml 的 id

Maven 只认 settings.xml 中 <server></server> 的 <id></id> 和 pom 里 <repository><id></id></repository> 完全相等才加载账号密码。大小写、空格、下划线差异都会导致认证失败,错误信息通常是 Failed to deploy artifacts: Could not transfer artifact ... Access denied。

实操建议:

  • 打开 ~/.m2/settings.xml,确认存在 <server></server> 块,且其 <id></id> 和 pom 中 <repository><id></id></repository> 一模一样
  • 密码不要明文写在 settings.xml 里,用 mvn --encrypt-password 加密后填入 <password></password>
  • 如果私服启用了 LDAP 或 token 认证,<username></username> 可能不是邮箱,而是登录名;<password></password> 可能是 personal access token,不是 Web 登录密码

没开 snapshot 开关却往快照库发正式版

正式版(version 不带 -SNAPSHOT)必须部署到 <repository></repository>,快照版(带 -SNAPSHOT)必须部署到 <snapshots></snapshots> 子节点。但很多人只配了 <repository></repository>,结果 mvn deploy 时 Maven 自动把快照版也往正式库推,直接被私服拒绝,报错类似 Repository 'releases' does not allow updating artifact。

实操建议:

  • 检查 pom 中 version:含 -SNAPSHOT → 必须配置 <snapshots></snapshots>;不含 → 必须配置 <repository></repository>
  • 两个 <id></id> 可以相同,也可以不同,但 <url></url> 必须指向不同路径(例如 /repository/maven-snapshots/ vs /repository/maven-releases/)
  • Nexus 默认关闭快照覆盖,如果要覆盖同名快照,得进 UI 把对应仓库的 “Deployment Policy” 改成 Allow Redeploy

跳过 maven-deploy-plugin 默认行为导致 Jar 包没上传

有人为控制构建流程,在 pluginManagement 或 profile 里重写了 maven-deploy-plugin,却漏掉了 <goals><goal>deploy</goal></goals>,或者把 <phase></phase> 改成了 none。结果 mvn deploy 看似跑完,实际什么都没传上去,本地 target/ 下有 jar,私服上却空空如也。

实操建议:

  • 执行 mvn help:effective-pom,搜索 maven-deploy-plugin,确认它是否绑定在 deploy 生命周期且 goal 是 deploy
  • 除非有强定制需求,否则别在 pom 里显式配置该插件——Maven 3.9+ 默认已内置正确绑定
  • 如果用了多模块项目,确保只有父 pom 写 distributionManagement,子模块不要重复写,否则子模块会尝试用自己的 id 去找 settings.xml 里的 server

真正卡住人的,往往不是配置项本身,而是私服返回的错误信息和真实原因严重脱节。比如 401 实际是 url 写错,405 实际是用了 http 却该用 https,而 Nexus 日志默认不打详细拒绝原因。调的时候别只盯着 pom,先抓包看 mvn 实际请求了哪个 URL、带了什么头、返回了什么 body。

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门AI工具

更多
DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

Atoms
Atoms Hot

Atoms是一款AI智能体工具,第一支自动构建真实业务的 AI 团队。

Laper
Laper Hot

Laper是专为编剧、导演和制片人推出的 AI 原生剧本创作工具。

立刻MV
立刻MV Hot

立刻MV是一款AI文本写作工具,AI 音乐视频(MV)创作工具。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

小橡皮AI

一款AI工具,主要用于小橡皮一键去AI味,将机器味重的内容改得更有活人感,防止因为 AI 内容被平台打上 AI 标签,以及限流,适合需要提升相关任务效率的用户。

超级简历WonderCV

一款AI办公效率工具,主要用于免费求职简历模版下载制作,应届生职场人必备简历制作神器,适合需要提升相关任务效率的用户。

Seko
Seko Hot

一款AI视频创作工具,主要用于商汤科技推出的创编一体的AI短视频创作Agent,适合需要提升相关任务效率的用户。

相关专题

更多
Java Maven专题
Java Maven专题

本专题聚焦 Java 主流构建工具 Maven 的学习与应用,系统讲解项目结构、依赖管理、插件使用、生命周期与多模块项目配置。通过企业管理系统、Web 应用与微服务项目实战,帮助学员全面掌握 Maven 在 Java 项目构建与团队协作中的核心技能。

4280

2025.09.15

Java Maven/Gradle 构建与依赖管理合集
Java Maven/Gradle 构建与依赖管理合集

系统讲解 Java 项目构建工具的使用与进阶配置,涵盖 Maven 的 POM 文件结构、生命周期(clean/compile/package/install/deploy)与插件机制、依赖范围(compile/provided/test/runtime)与传递依赖管理、多模块聚合与继承、私有 Nexus 仓库发布,以及 Gradle 的 Groovy / Kotlin DSL 语法、Task 自定义与增量构建、依赖版本目录(Versi

389

2026.05.09

pdf怎么转换成xml格式
pdf怎么转换成xml格式

将 pdf 转换为 xml 的方法:1. 使用在线转换器;2. 使用桌面软件(如 adobe acrobat、itext);3. 使用命令行工具(如 pdftoxml)。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

4864

2024.04.01

xml怎么变成word
xml怎么变成word

步骤:1. 导入 xml 文件;2. 选择 xml 结构;3. 映射 xml 元素到 word 元素;4. 生成 word 文档。提示:确保 xml 文件结构良好,并预览 word 文档以验证转换是否成功。想了解更多xml的相关内容,可以阅读本专题下面的文章。

6317

2024.08.01

xml是什么格式的文件
xml是什么格式的文件

xml是一种纯文本格式的文件。xml指的是可扩展标记语言,标准通用标记语言的子集,是一种用于标记电子文件使其具有结构性的标记语言。想了解更多相关的内容,可阅读本专题下面的相关文章。

2562

2024.11.28

curl_exec
curl_exec

curl_exec函数是PHP cURL函数列表中的一种,它的功能是执行一个cURL会话。给大家总结了一下php curl_exec函数的一些用法实例,这个函数应该在初始化一个cURL会话并且全部的选项都被设置后被调用。他的返回值成功时返回TRUE, 或者在失败时返回FALSE。

3803

2023.06.14

linux常见下载安装工具
linux常见下载安装工具

linux常见下载安装工具有APT、YUM、DNF、Snapcraft、Flatpak、AppImage、Wget、Curl等。想了解更多linux常见下载安装工具相关内容,可以阅读本专题下面的文章。

895

2023.10.30

登录token无效
登录token无效

登录token无效解决方法:1、检查token的有效期限,如果token已经过期,需要重新获取一个新的token;2、检查token的签名,如果签名不正确,需要重新获取一个新的token;3、检查密钥的正确性,如果密钥不正确,需要重新获取一个新的token;4、使用HTTPS协议传输token,建议使用HTTPS协议进行传输 ;5、使用双因素认证,双因素认证可以提高账户的安全性。

14666

2023.09.14

Uvicorn 报错与问题解决教程
Uvicorn 报错与问题解决教程

本专题汇总了Uvicorn服务器常见问题与报错解决的教程合集,涵盖启动失败、端口占用、模块导入错误、事件循环冲突及热重载失效等典型故障的排查思路。同时整理了多进程与Worker配置、SSL/HTTPS证书报错、跨域与代理配置等实战解决方案,助你快速定位并解决Uvicorn运行中的各类问题。

0

2026.11.02

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
热门推荐
/
最新课程
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn