maven - 在 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>
解决方案
还有一种使用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 }}
推荐阅读
- microsoft-graph-api - 从 Azure 数据工厂管道调用 MS Graph API
- node.js - 如何处理停止发送数据的 HTTP 请求
- ruby-on-rails - 如何在 RoR 中锁定记录
- python - 试图弄清楚如何传递函数,以便它可以显示值
- database - 保存用户是否在 MongoDB 中做过某事的条件:我应该使用哪种字段类型?
- javascript - 为页面上多种类型的元素添加监听器和值
- spring - 在 Feign 客户端中设置 cookie
- go - go env 显示 GOPATH 不匹配
- javascript - 如何在 react.js 中传递数据/值名称
- deep-learning - 是否应该保持小批量中输入数据的序列性质?