我想从 Github Actions 中的 pom.xml 获取项目版本
Posted
技术标签:
【中文标题】我想从 Github Actions 中的 pom.xml 获取项目版本【英文标题】:I want to get project version from pom.xml in Github Actions 【发布时间】:2021-11-15 07:23:37 【问题描述】:我的 github 操作代码如下。我想将版本保存到环境中。
name: Windows x64 Build
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
jobs:
build:
runs-on: windows-latest
steps:
- uses: actions/checkout@v2
- name: Cache local Maven repository
uses: actions/cache@v2
with:
path: ~/.m2/repository
key: $ runner.os -maven-$ hashFiles('**/pom.xml')
restore-keys: |
$ runner.os -maven-
- name: Set up JDK 14
uses: actions/setup-java@v2
with:
java-version: 14
distribution: 'adopt'
architecture: x64
javafx: true
- name: Get version
run: echo project_version=$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout) >> $GITHUB_ENV
当我运行它时,我得到了这个错误,我找不到解决方案。
Run echo project_version=$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout) >> $GITHUB_ENV
echo project_version=$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout) >> $GITHUB_ENV
shell: C:\Program Files\PowerShell\7\pwsh.EXE -command ". '0'"
env:
JAVA_HOME: C:\hostedtoolcache\windows\Java_Adopt_jdk\14.0.2-12\x64
Error: Process completed with exit code 1.
如果你能帮助我,我会很高兴。
【问题讨论】:
【参考方案1】:如果在 bash 上执行,您那里的代码应该可以正常工作。唯一的问题是,对于 Windows 运行程序,默认 shell 是 powershell,它使用的语法略有不同:
- name: Get version
run: $project_version=mvn help:evaluate -Dexpression=project.version -q -DforceStdout; echo "project_version=$project_version" >> $Env:GITHUB_ENV
【讨论】:
这个语法也不起作用,但我发现了这个link【参考方案2】:这个语法也不起作用,但我找到了这个link,我用这个改变了我的操作:
- name: Get version
shell: bash -l 0
run: echo project_version=$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout) >> $GITHUB_ENV
还有 wadaaa。
【讨论】:
以上是关于我想从 Github Actions 中的 pom.xml 获取项目版本的主要内容,如果未能解决你的问题,请参考以下文章
在 Github Actions 中获取 Maven 项目版本
如何在 Github Actions 工作流中从 Github 包访问 Maven 依赖项?
我想从 Maven 的 pom.xml 执行 shell 命令
在 GitHub Actions 中使用 docker 文件