推荐使用:Gradle Nexus Publish Plugin - 简化你的Maven发布流程
Gradle Nexus Publish Plugin 是一个强大的Gradle插件,专为简化到任何Nexus实例(内部或公共)的发布过程而设计。无论你是要发布开源项目至Sonatype还是Maven Central,这个插件都能提供全自动的解决方案。
1、项目介绍
此插件替代了原有的 Gradle Nexus Staging Plugin 和 Nexus Publish Plugin,旨在提供更好的隔离性,确保在持续集成环境中稳定地创建和管理新的staging仓库。它涵盖了从创建仓库、上传工件到关闭和释放staging仓库的整个发布流程。
2、项目技术分析
- 自动化发布: 自动创建新的staging仓库,消除因手动操作带来的不稳定性。
- 多仓库支持: 支持多个Nexus实例,可以根据需求配置不同的发布目标。
- 安全设置: 鼓励使用用户Token进行身份验证,提高安全性。
- Ivy兼容: 除了默认的Maven发布,还支持Ivy格式的发布,并能自定义目录结构。
3、项目及技术应用场景
- 发布开源项目: 对于想要将项目发布到Maven Central的开发者,通过Sonatype OSSRH可以一键完成。
- 企业内部发布: 内部的Nexus实例可用于管理和分发内部库。
- 持续集成: 在Jenkins、GitLab CI等平台中自动部署新版本。
4、项目特点
- 简化的配置: 只需简单的配置,即可实现到Nexus的完全自动化发布。
- 全面的生命周期任务: 提供开箱即用的关闭和释放staging仓库的任务,可根据需要拆分为不同步骤执行。
- 灵活的元数据定制: 支持在POM文件中添加详细信息,如项目描述、许可证、开发者信息和源代码链接。
- 安全实践: 鼓励使用非敏感的API密钥进行认证,提升CI/CD的安全水平。
以下是如何在项目中使用该插件的基本示例:
plugins {
id("io.github.gradle-nexus.publish-plugin") version "«version»"
}
group = "com.example.library"
version = "1.0.0"
nexusPublishing {
repositories {
sonatype()
}
}
然后只需运行 ./gradlew publishToSonatype closeAndReleaseSonatypeStagingRepository
,一切都会自动完成!
总的来说,Gradle Nexus Publish Plugin是发布Maven库的理想工具,无论是开源项目还是企业内部开发,它都能够提供简洁、高效的解决方案。立即尝试并加入那些已经受益于此插件的开发者行列吧!