发布GitHub Package后无法正常使用的问题求助
包的创建过程
我按照GitHub官方Gradle仓库指引将SDK包发布到GitHub Packages,已在本地环境变量中配置GITHUB_TOKEN和GITHUB_ACTOR。
项目的build.gradle配置如下:
plugins { id 'java' id 'maven-publish' id "com.katalon.gradle-plugin" version "0.1.1" } group = 'com.mikewarren.katalonstudiosdk' version = '1.0' dependencies { implementation 'com.github.javafaker:javafaker:1.0.2' } repositories { mavenCentral() } sourceSets { main { groovy { srcDirs = ['Keywords', 'Libs'] excludes = ['CustomKeywords.groovy', "Temp*.groovy"] } } test { groovy { srcDirs = ['Include/scripts/groovy'] } } } publishing { repositories { maven { name = "GitHubPackages" url = uri("https://maven.pkg.github.com/MikeWarren2014/KatalonStudioSDK") credentials { username = project.findProperty("gpr.user") ?: System.getenv("GITHUB_ACTOR") password = project.findProperty("gpr.key") ?: System.getenv("GITHUB_TOKEN") } } } publications { gpr(MavenPublication) { artifactId = 'katalon-studio-sdk' from components.java } } }
我还配置了GitHub Action用于发布包,但执行gradle clean publish --info时并未触发该Action。
使用包时遇到的问题
这是我发布的包,按照GitHub使用指引操作却遇到障碍。
消费项目的build.gradle配置如下:
plugins { id 'groovy' id "com.katalon.gradle-plugin" version "0.1.0" } repositories { maven { name = "GitHubPackages" url = uri("https://maven.pkg.github.com/MikeWarren2014/KatalonStudioSDK") credentials { username = project.findProperty("gpr.user") ?: System.getenv("GITHUB_ACTOR") password = project.findProperty("gpr.key") ?: System.getenv("GITHUB_TOKEN") } } } dependencies { implementation 'me.mikewarren.katalonstudiosdk:katalon-studio-sdk:1.0' }
执行gradle clean build显示成功,但在项目中找不到katalon-studio-sdk-1.0.jar或katalon-studio-sdk-1.0-all.jar。由于这是Katalon Studio项目,我尝试执行gradle katalonCopyDependencies,却出现报错。在浏览器中访问相关URL,输入凭证后得到提示:
maven package "me.mikewarren.katalonstudiosdk.katalon-studio-sdk" does not exist under owner "MikeWarren2014"
更新:执行gradle tasks --all | grep publish后得到以下输出:
publish - Publishes all publications produced by this project. publishAllPublicationsToGitHubPackagesRepository - Publishes all Maven publications produced by this project to the GitHubPackages repository. publishGprPublicationToGitHubPackagesRepository - Publishes Maven publication 'gpr' to Maven repository 'GitHubPackages'. publishGprPublicationToMavenLocal - Publishes Maven publication 'gpr' to the local Maven repository. publishToMavenLocal - Publishes all Maven publications produced by this project to the local Maven cache.
问题分析与解决方案
1. 依赖坐标Group ID不匹配(核心问题)
发布包时,build.gradle中配置的group是com.mikewarren.katalonstudiosdk,但消费项目中依赖写的是me.mikewarren.katalonstudiosdk:katalon-studio-sdk:1.0——Group ID从com变成了me,这直接导致GitHub Packages找不到对应包,出现maven package does not exist的报错。
修复:修改消费项目的dependencies块,将依赖坐标改为:
implementation 'com.mikewarren.katalonstudiosdk:katalon-studio-sdk:1.0'
2. GitHub Action触发逻辑误解
本地执行gradle clean publish是在本地环境完成发布操作,不会触发GitHub Action。GitHub Action的触发需要依赖仓库的事件(比如代码推送到指定分支、创建标签、手动触发等),而非本地命令。
修复:
- 检查你的GitHub Action配置文件(通常在
.github/workflows/目录下),确保设置了正确的触发条件,例如:on: push: branches: [ main ] release: types: [ published ] - 触发Action的正确方式是满足配置的事件条件(比如推送代码到main分支),而非本地执行gradle命令。
3. Jar包找不到与katalonCopyDependencies报错
先解决依赖坐标的问题,执行gradle clean build --refresh-dependencies强制刷新依赖,确认包是否正常下载到本地仓库(默认路径为~/.m2/repository/com/mikewarren/katalonstudiosdk/katalon-studio-sdk/1.0/)。
如果坐标修正后katalonCopyDependencies仍报错,需要提供具体的错误日志,才能进一步排查Katalon Gradle插件的执行问题。
内容的提问来源于stack exchange,提问作者Mike Warren

