elixir - 在应用程序中获取 elixir mix 发布版本
问题描述
我有以下 mix.exs
defmodule App.MixProject do
use Mix.Project
@version "0.1.0"
def git_ref(), do: System.get_git_hash()
def project do
[
app: :app,
version: @version,
...
releases: [
app: fn ->
[version: @version <> "+" <> git_ref()]
end
]
]
end
end
我想在我的应用程序中输出发布版本。我见过这个问题,在 elixir 应用程序中访问项目版本,但所有答案都返回“0.1.0”,即“project.version”
如果我使用 运行我的版本_build/../app version
,它会返回正确的值,因此它能够获取 git 哈希并设置键值,但该值会被写入version
命令的文件中。
我只是不知道如何“在运行时”获取它。这可能吗?我认为该版本可能会覆盖以前的键值,但我猜它们是不同的?
解决方案
据我所知,发布版本不包含在梁文件中,它纯粹是由发布脚本处理的元数据。我不相信有一种内置的方式来查找发布版本。但是,脚本将版本导出到RELEASE_VSN
,因此您可以使用它。
System.get_env("RELEASE_VSN")
这记录在文档的环境变量部分中mix release
:
RELEASE_VSN
- 发布的版本,否则使用最新版本。调用发布时可以将其设置为自定义值。releases/
自定义值必须是目录中现有的发布版本
推荐阅读
- algorithm - Kotlin 默认使用哪种排序方式?
- java - 硒中的WebElements与WebElement的区别
- php - PHP-在数据库表中链接以仅显示一个表行
- apache-camel - 骆驼 XPATH 变量到 XQuery element() 转换问题
- machine-learning - pytorch 中内核大小和填充的默认值是多少?
- c# - 检查 html 是否包含标签和空格
- rxjs - 如何取消订阅所有观看由“fromEvent”制作的可观察对象的观察者?
- angular - Angular Universal + PM2:不断退出并重新启动
- chatbot - 导出应用程序时,我的实体被删除
- c# - 多项目、单程序集版本管理器