发布到 Maven Central
发布到 Maven Central
将您的公开 Fern Java SDK 发布到 Maven Central registry。按照本页面的步骤操作后,您将在 Maven Central 上发布一个有版本号的包。
本页面假设您已经:
- 初始化了
fern文件夹,为您的 Java SDK 创建了 GitHub 仓库,并在generators.yml中配置了 Java 生成器组。参见 生成 SDK (Java)。
配置 Maven Central 发布
您需要更新 generators.yml 文件来配置输出位置、目标仓库和发布模式。您的 generators.yml 应该位于您的源代码仓库中(或在您的本地机器上),而不是包含您的 Java SDK 代码的仓库中。
配置 output 位置
在您的 Java SDK 的 group 中,将 generators.yml 中的输出位置从 local-file-system(默认值)更改为 maven,以指示 Fern 应该直接将您的包发布到 Maven Central 注册表。
然后,添加 publish-to: central 来指示发布目标是新的 Maven Central Portal (Sonatype)。要发布到旧版 Nexus Repository,请使用 publish-to: ossrh。
选择您的发布模式
Optionally set the mode to control how Fern handles SDK publishing:
mode: release(default): Fern generates code, commits to main, and tags a release automaticallymode: pull-request(recommended): Fern generates code and creates a PR for you to review before releasemode: push: Fern generates code and pushes to a branch you specify for you to review before release
You can also configure other settings, like the reviewers or license. Refer to the full github (generators.yml) reference for more information.
设置 Maven Central 发布身份验证
验证您的命名空间
- 点击您的用户名,然后选择 View Namespaces。点击 Register New Namespace。
- 以反向域名格式输入您的公司网站或 GitHub 账户,并完成验证流程。
配置 Maven 坐标
将您在 Maven Central 中刚刚验证的命名空间添加到 coordinate 字段中。这指定了您的 Java SDK 将如何在 Maven Central 仓库中发布和引用。
生成 GPG 签名
接下来,通过生成或识别 GPG 密钥 ID、密码和私钥来设置代码签名凭据。Maven Central 要求所有制品都使用 PGP/GPG 密钥进行数字签名。
发布您的 SDK
决定如何将您的 SDK 发布到 Maven Central。您可以使用 GitHub 工作流进行自动化发布,或直接通过 CLI 发布。
通过 GitHub 工作流发布
通过 GitHub Actions 设置发布工作流,以便您可以直接从源代码仓库触发新的 SDK 发布。
设置身份验证
在 GitHub 中打开您的源代码仓库。点击 Settings 选项卡。然后,在 Security 部分下,打开 Secrets and variables > Actions。
您也可以使用 URL https://github.com/<your-repo>/settings/secrets/actions。
为您的 Fern Token 添加密钥
- 选择 New repository secret。
- 将您的密钥命名为
FERN_TOKEN。 - 添加您的 Fern 令牌。如果您还没有令牌,请运行
fern token生成一个。默认情况下,fern_token是为fern.config.json中列出的组织生成的。 - 点击 Add secret。
为 Maven Central 添加密钥
通过为每个密钥选择 New repository secret 来添加以下仓库密钥:
MAVEN_USERNAME- 您的 Maven Central 用户名MAVEN_PASSWORD- 您的 Maven Central 密码MAVEN_SIGNATURE_SECRET_KEY_ID- 您的 GPG 密钥 IDMAVEN_SIGNATURE_PASSWORD- 您的 GPG 密码短语MAVEN_SIGNATURE_SECRET_KEY- 您的 GPG 私钥
设置新工作流
设置一个可以从 GitHub UI 手动触发的 CI 工作流。在您的仓库中,导航到 Actions。选择 New workflow,然后选择 Set up workflow yourself。添加一个类似于以下的工作流:
您也可以将工作流配置为在 on: [push] 时执行。
重新生成并发布您的 SDK
导航到 Actions 选项卡,选择您刚创建的工作流,指定版本号,然后点击 Run workflow。这将重新生成您的 SDK。
The rest of the release process depends on your chosen mode:
-
Release mode (default): If you didn’t specify a
modeor setmode: release, no further action is required. Fern automatically tags the new release with your specified version number and initiates the publishing workflow in your SDK repository. -
Pull request or push mode: If you set
mode: pull-requestormode: push, Fern creates a pull request or pushes to a branch respectively. Review and merge the PR (pull-request) or branch (push), then tag a new release to initiate the publishing workflow in your SDK repository.
工作流完成后,您可以通过登录 Maven Central 并导航到 View Deployments 来查看新发布的版本。
通过 CLI 和环境变量发布
重新生成并发布您的 SDK
重新生成您的 SDK,指定版本:
The rest of the release process depends on your chosen mode:
-
Release mode (default): If you didn’t specify a
modeor setmode: release, no further action is required. Fern automatically tags the new release with your specified version number and initiates the publishing workflow in your SDK repository. -
Pull request or push mode: If you set
mode: pull-requestormode: push, Fern creates a pull request or pushes to a branch respectively. Review and merge the PR (pull-request) or branch (push), then tag a new release to initiate the publishing workflow in your SDK repository.
命令完成后,您可以通过登录 Maven Central 并导航到 View Deployments 来查看新发布的版本。