【问题标题】:How can I customize my Elixir projects deps directory?如何自定义我的 Elixir 项目 deps 目录?
【发布时间】:2015-03-04 09:06:24
【问题描述】:

我在 SnapCI 上运行我的 Elixir 项目的 CI,我缓存了我的 deps 文件夹,这样它就不必在每次尝试运行我的测试时都安装我的 deps。我该怎么做?

我注意到DEPS_DIR 有一个 env 设置,但这似乎是一个钢筋,还是一样?无论如何,我在一个简单的项目上尝试过,但它似乎不起作用,mix 仍然在我当前的文件夹中安装我的 deps。

2015 年 3 月 4 日更新

这是我的 snap-ci 完整脚本:

curl -O https://raw.githubusercontent.com/spawngrid/kerl/master/kerl && chmod a+x kerl
mkdir -p /var/go/deps
export MY_DEPS_PATH=/var/go/deps
set +e
./kerl update releases
./kerl cleanup 17.4
(./kerl list builds | grep 17.4) || (export MAKEFLAGS='-j3'; ./kerl build git https://github.com/erlang/otp/ OTP-17.4 17.4)
(./kerl list installations | grep 17.4) || (./kerl install 17.4 ~/.kerl/installs/17.4)
source ~/.kerl/installs/17.4/activate
mkdir -p vendor/elixir
wget --no-clobber -q https://github.com/elixir-lang/elixir/releases/download/v1.0.2/precompiled.zip
unzip -o -qq precompiled.zip -d vendor/elixir
export PATH=`pwd`/vendor/elixir/bin:$PATH
yes y | MIX_ENV=test mix do local.rebar
yes y | MIX_ENV=test mix deps.get
yes y | MIX_ENV=test mix deps.compile
MIX_ENV=test mix amrita --trace

【问题讨论】:

  • mix 不应获取依赖项,除非您明确要求它获取它们。请分享您为此使用的实际 shell 脚本或命令行。

标签: elixir


【解决方案1】:

在伞式项目中,使用了“deps_path”选项。您可以在此处使用任何本地目录(参见 [1])。

您必须自己决定它是否适合您的情况。如果您没有指定每个 dep 的精确版本,您将在 CI(带有缓存的 dep)和独立编译中得到不同的结果。当然,您可以将两者结合起来。

[1]http://elixir-lang.org/getting-started/mix-otp/dependencies-and-umbrella-apps.html

【讨论】:

  • 是否可以为此设置环境变量?
  • 您可以在项目配置中设置环境变量:deps_path: System.get_env("MY_DEPS_PATH") || "deps"
猜你喜欢
  • 1970-01-01
  • 2013-03-06
  • 1970-01-01
  • 1970-01-01
  • 2019-06-17
  • 2013-05-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多