Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Elixir 如何在项目之间共享代码?_Elixir_Phoenix Framework - Fatal编程技术网

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

Elixir 如何在项目之间共享代码?,elixir,phoenix-framework,Elixir,Phoenix Framework,我有一些代码,我想在我的其他Phoenix/Elixir项目中重复使用,但我不想上传到hex.pm并通过互联网分发。除了将代码复制粘贴到我的每个项目中的最简单方法外,我如何在我拥有的不同项目之间共享它?正如文档中明确指出的那样,mix除了支持hex.pm之外,还支持两种依赖关系: Mix还支持Git和路径依赖关系: {:foobar, git: "https://github.com/elixir-lang/foobar.git", tag: "0.1"} {:foobar, path: "pa

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

正如文档中明确指出的那样,
mix
除了支持
hex.pm
之外,还支持两种依赖关系:

Mix还支持Git和路径依赖关系:

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

后者可能是出于您的兴趣,除非您创建一个总括项目。前者将用作:

{:my_shared_hex_package, path: "../shared/my_shared_hex_package"}
或者,取决于您的实际路径


另一个可能的选择是创建私有git[hub]回购协议,并使用它在项目之间共享公共私有代码。这样,您仍然能够通过发布管道(例如,持续集成、热插拔部署等)无需打开您的私人代码。

mix
可以从github而不是hex.pm+private repos下载代码。本网站的规则规定在问题/评论中使用英语。我认为,通过强调git将与私人存储库一起使用,此答案的质量可以进一步提高(我认为这是目前绝大多数情况下使用的方法,您不想通过Hex.pm共享代码)。@cdegroot感谢更新的提示。事实上,这是我的第一个建议(请参阅对OP的评论),但后来我意识到这个问题的目标是离线处理。
{:my_shared_hex_package, path: "../shared/my_shared_hex_package"}