Gradle插件怎么发布到内部Maven仓库

胖涛吖_9458

胖涛吖_9458

2026-10-21

163人浏览

原创

内部仓库发布无需sonatype审核或gpg签名,只需正确配置maven-publish插件的repository url(必须以/结尾、无查询参数)、凭据(通过gradle.properties或环境变量安全加载)、publication绑定的component类型(android用androidcomponents,插件需gradleplugin块),并区分publishtomavenlocal(仅本地)与publish(真实上传)。

gradle插件怎么发布到内部maven仓库

用 maven-publish 插件配置内部仓库地址就行

不需要 Sonatype 审核、不用 GPG 签名、不走 Central Portal,内部 Maven 仓库(比如 Nexus 或 Artifactory)只要提供 HTTP 地址和基础认证,就能直接发布。关键在于正确声明 publishing.repositories.maven 的 url 和凭据。

常见错误是把 url 写成带路径参数的地址(如 http://nexus:8081/repository/maven-releases/?v=1),这会导致 405 错误——Maven 仓库协议只接受标准仓库根路径,结尾不能带查询参数或斜杠后缀。

  • url 必须以 / 结尾,且仅指向仓库实例下的具体 repository(如 http://nexus:8081/repository/maven-releases/)
  • 快照和正式版建议分两个仓库,用 version.toString().endsWith("SNAPSHOT") 动态切 url
  • 如果仓库启用了匿名读取但要求写入认证,credentials 仍必须显式配置,否则 publish 任务会卡在 401

publishToMavenLocal 和 publish 别混用

publishToMavenLocal 是本地缓存($HOME/.m2/repository),它不走网络,也不校验 publishing.repositories 配置;而 publish 才真正上传到你定义的远程仓库。很多人跑完 publishToMavenLocal 就以为发成功了,结果别人 ./gradlew build 时拉不到——因为没真传过去。

Java Maven Common
Java Maven Common

Java Maven 项目审查工作流的通用输入处理。当 Java Maven 项目以 ZIP压缩包或 GitLab 仓库 URL 形式提供且需要...时使用。

下载
  • 验证是否发到内部仓库:运行 ./gradlew publish --info,看日志里有没有 Uploading to http://...
  • 检查生成的 POM 是否完整:打开 build/publications/<pubname>/pom-default.xml</pubname>,确认 <groupid></groupid>、<artifactid></artifactid>、<version></version> 和你预期一致
  • Android 项目注意:如果用了 com.android.library,默认 publication 是 androidComponents,不是 java,得显式调用 from components.release 或启用 configureBasedOnAppliedPlugins()

认证凭据别硬编码在 build.gradle

把用户名密码写死在构建脚本里,既不安全又难维护。Gradle 支持从环境变量或 gradle.properties 加载,优先级高于脚本内联值。

  • 推荐方式:在 ~/.gradle/gradle.properties 中加两行:nexusUsername=deployer、nexusPassword=xxx
  • 然后在 publishing { repositories { maven { ... credentials { username = project.findProperty("nexusUsername") ?: "" password = project.findProperty("nexusPassword") ?: "" } } } }
  • CI 环境下可直接设环境变量 ORG_GRADLE_PROJECT_nexusUsername,Gradle 会自动映射为 project property

插件元数据容易漏掉 gradlePlugin 块

普通 Java 库只需要 java component,但 Gradle 插件必须声明 gradlePlugin,否则生成的 POM 缺少 <plugin></plugin> 描述,下游项目 plugins { id "xxx" } 会报 Plugin [xxx] not found。

  • 确保 build.gradle.kts 启用了 java-gradle-plugin 插件
  • 在 gradlePlugin { plugins { register("myPlugin") { id = "my.company.plugin" implementationClass = "MyPlugin" } } } 中正确定义插件 ID 和入口类
  • 发布后检查 jar 包内是否有 META-INF/gradle-plugins/my.company.plugin.properties,内容应为 implementation-class=my.company.MyPlugin
内部仓库发布成败的关键不在签名或审核,而在 URL 格式、凭据加载时机、publication 绑定的 component 类型,以及插件特有的元数据完整性——这几处错一个,就会卡在“看起来成功了,实际用不了”。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

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

相关专题

更多
Java Maven专题
Java Maven专题

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

2025.09.15

3840

19

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

2026.05.09

369

25

OpenJDK JVM参数怎么调优
OpenJDK JVM参数怎么调优

Java应用运行缓慢,如何调整JVM参数?本专题介绍OpenJDK JVM性能调优的基本流程,涵盖性能指标确认、运行数据采集、内存配置和垃圾回收分析,帮助你先定位瓶颈,再通过对照测试验证效果,避免直接套用参数而影响应用稳定性。

2026.10.16

100

10

OpenJDK怎么配置Java开发环境
OpenJDK怎么配置Java开发环境

怎样用OpenJDK搭建开发环境?本专题介绍版本选择、下载安装、环境变量配置和编译运行验证,帮助你理清JDK的作用及基本配置流程,并通过简单程序检查环境是否可用,为后续项目开发做好准备。

2026.10.16

60

10

OpenJDK怎么部署Java应用
OpenJDK怎么部署Java应用

Java项目开发完成后,怎样部署到目标环境并正常运行?本专题介绍OpenJDK应用部署流程,涵盖运行环境准备、版本兼容检查、应用打包、启动参数配置和日志查看,帮助你理清部署前后的操作顺序,减少环境差异造成的运行问题。

2026.10.16

40

10

Revel框架模板渲染与表单验证
Revel框架模板渲染与表单验证

本专题围绕Revel框架视图层开发,介绍模板语法、变量输出、布局复用、表单提交、参数绑定与验证规则,帮助开发者完成安全规范的页面交互。

2026.10.16

40

15

Revel框架MVC路由与控制器
Revel框架MVC路由与控制器

本专题聚焦Revel框架MVC核心机制,讲解路由定义、控制器Action、参数绑定、请求响应和反向路由,并结合常见场景梳理接口请求处理流程。

2026.10.16

20

15

Revel框架入门与安装配置
Revel框架入门与安装配置

本专题从Revel框架环境搭建讲起,系统介绍命令行工具安装、项目创建、目录结构、配置文件及热代码重载,帮助开发者快速完成首个Go Web应用。

2026.10.16

40

15

Linux 新手先学哪些命令
Linux 新手先学哪些命令

Linux新手命令专题汇集终端基础、文件目录操作、文本查看、软件安装和权限管理等入门文章,帮助按实际任务练习常用命令并建立命令行操作习惯。

2026.10.15

40

20

热门下载

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

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Apache Maven 官方安装指南
Apache Maven 官方安装指南

共0课时 | 0人学习

Apache Maven 官方用户中心
Apache Maven 官方用户中心

共0课时 | 0人学习