我想从Github Actions中的pom.xml获得项目版本



我的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 FilesPowerShell7pwsh.EXE -command ". '{0}'"
env:
JAVA_HOME: C:hostedtoolcachewindowsJava_Adopt_jdk14.0.2-12x64
Error: Process completed with exit code 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

这个语法也不起作用,但是我发现了这个链接,我用这个改变了我的动作:

- name: Get version
shell: bash -l {0}
run: echo project_version=$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout) >> $GITHUB_ENV

和wadaaa。

最新更新