2016-12-24 118 views
1

我有一些代碼,我想在我的其他Phoenix/Elixir項目中重複使用,但是我不想上傳到hex.pm並通過Internet進行分發。我如何在不同的項目中分享它,除了通過將代碼複製粘貼到每個項目中最直接的方法?如何在我的項目之間共享代碼?

+0

'mix'能夠從github下載代碼而不是hex.pm + private repos。 – mudasobwa

+0

本網站的規則規定在問題/評論中使用英語。 – mudasobwa

回答

2

正如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

相關問題