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

问题描述:

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

+0

'mix'能够从github下载代码而不是hex.pm + private repos。 – mudasobwa

+0

本网站的规则规定在问题/评论中使用英语。 – mudasobwa

正如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 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]回购协议,并用它来跨项目共享公共私有代码。这样,您就可以继续完成发布流程(例如持续集成,热插拔部署等),而无需打开您的私有代码。

+0

我认为这个答案的质量可以进一步提高,强调git可以与私人存储库一起工作(我认为这是目前绝大多数情况下你不想通过十六进制共享代码的方法。下午)。 – cdegroot

+0

@cdegroot感谢您的提示,已更新。事实上,这是我第一次提出建议(请参阅OP的评论),但之后我意识到这个特定问题的目标是让事情脱机。 – mudasobwa