如何在 GitHub 中自动化 Maven 项目的版本控制?
How to automate versioning of Maven project in GitHub?
我正在尝试将自动或半自动版本化为 GitHub
。
我调查了自动化发布工作流程的可能性,它似乎并不符合 GitHub
的任何标准。
每当我在 GitHub
上创建标签或合并到 master
分支时,我希望在 pom.xml
中自动更新版本。
我找到了一个解决方案,其中包含 Github 可以进一步扩展的操作。每当我发布并手动指定发行说明和变更日志时,可以从 github.event.release.tag_name
中获取此发行版本
mvn -B versions:set -DnewVersion=${{ github.event.release.tag_name }} -DgenerateBackupPoms=false
对实际 GitHub 工作流程的引用是 here。
.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 }}
我正在尝试将自动或半自动版本化为 GitHub
。
我调查了自动化发布工作流程的可能性,它似乎并不符合 GitHub
的任何标准。
每当我在 GitHub
上创建标签或合并到 master
分支时,我希望在 pom.xml
中自动更新版本。
我找到了一个解决方案,其中包含 Github 可以进一步扩展的操作。每当我发布并手动指定发行说明和变更日志时,可以从 github.event.release.tag_name
mvn -B versions:set -DnewVersion=${{ github.event.release.tag_name }} -DgenerateBackupPoms=false
对实际 GitHub 工作流程的引用是 here。
.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 }}