本文档说明如何将 FloatMenu 发布到 GitHub Packages。
- 访问:https://github.com/settings/tokens
- 点击 "Generate new token" (classic)
- 设置 token 名称(如:FloatMenu Publish)
- 勾选以下权限:
- ✅
repo- Full control of private repositories - ✅
write:packages- Upload packages to GitHub Packages - ✅
read:packages- Download packages from GitHub Packages
- ✅
- 点击 "Generate token"
- 重要: 复制并保存 token,只会显示一次!
在项目根目录的 local.properties 文件中添加(该文件不应提交到 Git):
# GitHub Packages 发布凭据
gpr.user=你的GitHub用户名
gpr.key=刚才创建的Personal Access Token或者在命令行中设置环境变量(推荐,更安全):
# macOS/Linux
export GITHUB_USER=你的GitHub用户名
export GITHUB_TOKEN=你的Personal_Access_Token
# Windows PowerShell
$env:GITHUB_USER="你的GitHub用户名"
$env:GITHUB_TOKEN="你的Personal_Access_Token"检查 FloatMenu/build.gradle 中的版本号:
version = "2.4.0"./gradlew :FloatMenu:assembleRelease./gradlew :FloatMenu:publishReleasePublicationToGitHubPackagesRepository或者发布所有产物(包括 sources):
./gradlew :FloatMenu:publish- 访问:https://github.com/fanOfDemo/FloatMenuSample/packages
- 你应该能看到
FloatMenu包 - 点击包查看版本和详情
在其他项目的 settings.gradle 中添加:
dependencyResolutionManagement {
repositories {
maven {
url = "https://maven.pkg.github.com/fanOfDemo/FloatMenuSample"
credentials {
// 方式一:使用用户名和 Token(不推荐,会暴露凭据)
username = "你的GitHub用户名"
password = "你的GitHub Token"
// 方式二:使用环境变量(推荐)
username = System.getenv("GITHUB_USER")
password = System.getenv("GITHUB_TOKEN")
}
}
}
}在 build.gradle 中添加依赖:
dependencies {
implementation 'com.github.fanofdemo:FloatMenu:2.4.0'
}如果你希望包能被公开访问(不需要认证),需要在 GitHub 上设置包为公开:
- 访问:https://github.com/fanOfDemo/FloatMenuSample/packages
- 点击
FloatMenu包 - 点击 "Package settings"
- 滚动到 "Danger Zone"
- 点击 "Change visibility"
- 选择 "Public"
原因: Token 无效或权限不足
解决:
- 检查
local.properties中的凭据是否正确 - 确认 Token 有
write:packages权限 - 尝试重新生成 Token
原因: 仓库名称或 URL 配置错误
解决:
检查 build.gradle 中的 URL 是否正确:
url = uri("https://maven.pkg.github.com/fanOfDemo/FloatMenuSample")原因: 包未设置为公开或凭据问题
解决:
- 将包设置为公开(见上文"公开包访问")
- 或确保用户有正确的 GitHub Token
解决:
- 访问:https://github.com/fanOfDemo/FloatMenuSample/packages
- 点击
FloatMenu包 - 找到要删除的版本
- 点击版本右侧的 "..." 菜单
- 选择 "Delete version"
- 更新
FloatMenu/build.gradle中的版本号 - 更新
CHANGELOG.md - 提交代码:
git commit -m "chore: bump version to x.x.x" - 推送:
git push - 创建 tag:
git tag v2.4.1 - 推送 tag:
git push origin v2.4.1 - 发布:
./gradlew :FloatMenu:publish
创建 publish.sh 脚本:
#!/bin/bash
# 设置版本号
VERSION="2.4.0"
# 更新版本号(可选)
sed -i '' "s/version = \".*\"/version = \"$VERSION\"/" FloatMenu/build.gradle
# 提交版本更新
git add FloatMenu/build.gradle
git commit -m "chore: bump version to $VERSION"
# 创建并推送 tag
git tag v$VERSION
git push origin master
git push origin v$VERSION
# 发布到 GitHub Packages
./gradlew :FloatMenu:publishReleasePublicationToGitHubPackagesRepository
echo "✅ Release $VERSION published successfully!"使用:
chmod +x publish.sh
./publish.sh创建 .github/workflows/release.yml:
name: Release to GitHub Packages
on:
push:
tags:
- 'v*.*.*'
jobs:
release:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'temurin'
- name: Grant execute permission for gradlew
run: chmod +x gradlew
- name: Publish to GitHub Packages
run: ./gradlew :FloatMenu:publish
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}这样每次推送 tag 时会自动发布到 GitHub Packages。
BSD 3-Clause License