如何在我的项目之间共享代码?

时间:2016-12-24 04:22:00

标签: elixir phoenix-framework

我有一些代码,我想在我的其他Phoenix / Elixir项目中重复使用但我不想上传到hex.pm并通过Internet分发。除了通过将代码复制粘贴到我的每个项目中最简单的方法之外,我如何在不同的项目中共享它?

1 个答案:

答案 0 :(得分:2)

正如Mix.Tasks.Deps文档中明确指出的,mix除了hex.pm之外还支持两种类型的依赖:

  

Mix还支持Git和路径依赖:

{:foobar, git: "https://github.com/elixir-lang/foobar.git", tag: "0.1"}
{:foobar, path: "path/to/foobar"}

Path options是:

:path        — the path for the dependency
:in_umbrella — when true, sets a path dependency pointing 
               to `“../#{app}”`, sharing the same environment 
               as the current application

后者可能不符合您的利益,除非您创建一个伞形项目。前者将用作:

{:my_shared_hex_package, path: "../shared/my_shared_hex_package"}

或者喜欢,具体取决于您的实际路径。

另一种可能的选择是创建一个私有git [hub] repo并使用它来跨项目共享公共私有代码。这样你就可以在不打开私人代码的情况下继续通过发布管道(例如持续集成,热插拔部署等)。