如何在我的项目之间共享代码?
问题描述:
我有一些代码,我想在我的其他Phoenix/Elixir项目中重复使用,但是我不想上传到hex.pm并通过Internet进行分发。我如何在不同的项目中分享它,除了通过将代码复制粘贴到每个项目中最直接的方法?如何在我的项目之间共享代码?
答
正如Mix.Tasks.Deps
文件明确指出,mix
支持两种类型的依赖关系,除了hex.pm
:
驴友还支持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]回购协议,并用它来跨项目共享公共私有代码。这样,您就可以继续完成发布流程(例如持续集成,热插拔部署等),而无需打开您的私有代码。
'mix'能够从github下载代码而不是hex.pm + private repos。 – mudasobwa
本网站的规则规定在问题/评论中使用英语。 – mudasobwa