我有一些代码,我想在我的其他Phoenix / Elixir项目中重复使用但我不想上传到hex.pm并通过Internet分发。除了通过将代码复制粘贴到我的每个项目中最简单的方法之外,我如何在不同的项目中共享它?
答案 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 — 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并使用它来跨项目共享公共私有代码。这样你就可以在不打开私人代码的情况下继续通过发布管道(例如持续集成,热插拔部署等)。