maven - 如何在 GitHub 中自动化 Maven 项目的版本控制?
问题描述
我正在尝试将自动或半自动版本控制为GitHub
.
我研究了自动化发布工作流程的可能性,它看起来不像GitHub
.
pom.xml
每当我在分支上创建标签GitHub
或合并到master
分支时,我都希望自动更新版本。
解决方案
我找到了一个可以进一步扩展的 Github Actions 解决方案。每当我发布并手动指定发布说明和变更日志时,因此可以从github.event.release.tag_name
mvn -B versions:set -DnewVersion=${{ github.event.release.tag_name }} -DgenerateBackupPoms=false
对实际 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 }}
推荐阅读
- sql - 如何建立基于时间序列的列排名
- mysql - 使用 SSL (.pem + .key) 连接到 MySQL
- ionic4 - 使用应用内浏览器在 ion-content 中打开网页
- ionic-framework - 如何从 ionic 3 应用程序收集 Google Analytics 人口统计数据?
- r - 如何在 r 中显示每个事件本身的所有事件持续时间
- javascript - 在 Chrome 存储中为 Chrome 扩展存储 HTML OBJECT 数组
- swiftui - 如何让 UIButton (UIViewControllerRepresentable) 在我的模型中触发动作?
- ansible - 通过 ansible playbook 列出 Linux 主机中正在运行的 java 进程
- vba - 如何确定绑定文本框的值是否与未绑定文本框的值不同?
- dhall - 传递文件名作为参数读取