首页 > 解决方案 > 在 Github Actions 中获取 Maven 项目版本

问题描述

作为部署过程的一部分,我正在尝试获取我的 maven 项目的版本,但我似乎在命令的输出中遇到了错误。有任何想法吗?

我的 pom.xml 插件中有 Maven 帮助。

这是我正在运行的步骤:

 - name: Get version
        run: |
          VERSION=$( mvn help:evaluate -Dexpression=project.version -q -DforceStdout )
          echo "::set-output name=version::$VERSION"
        id: get_version

这是输出(注意:我在这里删除了 -q 以便我可以看到输出)。请注意,默认的项目是我正在寻找的。我正在尝试将 v0.1 作为我的输出!

[INFO] No artifact parameter specified, using 'com.xyz:abc-123:war:v0.1' as project.
[INFO] 
null object or invalid expression
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  13.569 s
[INFO] Finished at: 2020-08-29T13:52:22Z
[INFO] ------------------------------------------------------------------------

我正在使用帮助 3.2.0

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-help-plugin</artifactId>
                <version>3.2.0</version>
            </plugin>

标签: mavengithub-actions

解决方案


还有一种使用mvn exec目标和set-output变量定义的方法:

  - name: Extract Maven project version
    run: echo ::set-output name=version::$(mvn -q -Dexec.executable=echo -Dexec.args='${project.version}' --non-recursive exec:exec)
    id: project

  - name: Show extracted Maven project version
    run: echo ${{ steps.project.outputs.version }}

推荐阅读