Gradle 7.0 下使用Bitbucket作为Maven仓库的推送问题求助
在Gradle 7+ 中使用Bitbucket作为Maven仓库的解决方案
核心思路
放弃wagonGit,改用Bitbucket官方的Packages仓库(推荐)或调整Git仓库的发布方式,配合maven-publish插件完成构件推送。
方案1:使用Bitbucket Cloud Packages仓库(推荐)
Bitbucket Cloud提供原生的Maven包托管服务,适配maven-publish插件,无需依赖第三方Git wagon。
步骤1:配置插件与发布构件
在build.gradle中添加以下配置:
plugins { id 'java' id 'maven-publish' } // 定义要发布的构件(以Java项目为例) publishing { publications { mavenJava(MavenPublication) { from components.java // 可选:自定义POM元数据 pom { name = '你的项目名称' description = '项目描述' url = 'https://bitbucket.org/你的用户名/你的仓库名' } } } // 配置Bitbucket Packages仓库地址 repositories { maven { url = 'https://api.bitbucket.org/2.0/repositories/你的用户名/你的仓库名/packages/maven' // 凭证配置(避免硬编码) credentials { username = project.findProperty('bitbucketUsername') ?: System.getenv('BITBUCKET_USERNAME') password = project.findProperty('bitbucketAppPassword') ?: System.getenv('BITBUCKET_APP_PASSWORD') } } } }
步骤2:创建Bitbucket App Password
- 登录Bitbucket,进入个人设置 → App passwords
- 创建新的App Password,勾选权限:
Repositories: WritePackages: Write
- 保存生成的密码(仅显示一次)
步骤3:配置凭证
在本地~/.gradle/gradle.properties中添加凭证(或通过环境变量传递):
bitbucketUsername=你的Bitbucket用户名 bitbucketAppPassword=刚才生成的App Password
步骤4:执行发布
运行Gradle命令完成推送:
./gradlew publish
方案2:将构件推送到Git仓库目录(兼容旧方式)
如果必须用Git仓库存储Maven包,可通过以下方式替代wagonGit:
- 先将构件发布到本地目录:
publishing { repositories { maven { url = layout.buildDirectory.dir('maven-repo') } } }
- 使用Git工具(或Gradle的
grgit插件)将本地maven-repo目录的内容提交并推送到Bitbucket仓库的指定路径(比如repo/目录)
这种方式需要手动维护Git提交,不如官方Packages方案便捷。
注意事项
- Bitbucket Server用户需调整仓库地址为:
https://你的Bitbucket服务器地址/rest/api/latest/projects/项目key/repos/仓库名/packages/maven - 确保Gradle版本≥7.0,
maven-publish插件已默认支持现代仓库协议
内容的提问来源于stack exchange,提问作者Bytecode
相关产品推荐
相关产品推荐

