如何在 GitHub 中自动对 Maven 项目进行版本控制?

Dmy*_*kyi 4 versioning workflow release github maven

我正在尝试将自动或半自动版本控制为GitHub.

我研究了自动化发布工作流程的可能性,它似乎并不是GitHub.

我希望pom.xml每当我创建标签GitHub或合并到master分支时自动更新版本。

Dmy*_*kyi 6

我通过 Github Actions 找到了一个可以进一步扩展的解决方案。每当我发布时,我都会手动指定发行说明和变更日志,因此可以从以下位置获取此发行版本github.event.release.tag_name

mvn -B versions:set -DnewVersion=${{ github.event.release.tag_name }} -DgenerateBackupPoms=false
Run Code Online (Sandbox Code Playgroud)

实际 GitHub 工作流程的参考位于此处

.github/workflows/deploy.yml在撰写本文时:

name: Publish package to the Maven Central Repository
on:
  release:
    types: [created]

jobs:
  publish:
    runs-on: ubuntu-latest
    steps:
      - name: Check out Git repository
        uses: actions/checkout@v2
      - name: Install Java and Maven
        uses: actions/setup-java@v1
        with:
          java-version: 8
      - if: github.event.release
        name: Update version in pom.xml (Release only)
        run: mvn -B versions:set -DnewVersion=${{ github.event.release.tag_name }} -DgenerateBackupPoms=false
      - name: Release Maven package
        uses: samuelmeuli/action-maven-publish@v1.4.0
        with:
          maven_profiles: deploy, verify
          gpg_private_key: ${{ secrets.GPG_PRIVATE_KEY }}
          gpg_passphrase: ${{ secrets.GPG_PASSPHRASE }}
          nexus_username: ${{ secrets.OSSRH_USERNAME }}
          nexus_password: ${{ secrets.OSSRH_TOKEN }}
Run Code Online (Sandbox Code Playgroud)