【问题标题】:Get elixir mix release version in application在应用程序中获取 elixir mix 发布版本
【发布时间】:2021-06-24 21:19:48
【问题描述】:

我有以下 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

我想在我的应用中输出 release 版本。我看过这个问题,Access project version within elixir application,但所有答案都返回“0.1.0”,即“project.version”

如果我使用_build/../app version 运行我的版本,它会返回正确的值,因此它能够获取 git 哈希并设置键值,但该值被写入version 命令的文件中。

我只是不知道如何“在运行时”获取它。这可能吗?我以为版本可能会覆盖以前的键值,但我猜它们是不同的?

【问题讨论】:

  • @version "0.1.0" &lt;&gt; System.get_git_hash()?
  • 不知道你在问什么
  • 我建议一种解决方法。只需定义@version,如我上面所示。

标签: elixir elixir-mix


【解决方案1】:

据我所知,发布版本不包含在梁文件中,它纯粹是由发布脚本处理的元数据。我不相信有一种内置的方式来查找发布版本。不过,脚本exports the version to RELEASE_VSN,所以你可以使用它。

System.get_env("RELEASE_VSN")

这记录在mix release 文档的Environment variables 部分:

  • RELEASE_VSN - 发布的版本,否则使用最新版本。调用时可以设置为自定义值 发布。自定义值必须是现有的发布版本 releases/目录

【讨论】:

  • 感觉可能是这样。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-11-17
  • 2016-01-03
  • 2017-03-15
  • 2015-12-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多