2016-12-24 4 views
1

私は他のPhoenix/Elixirプロジェクトで再利用したいコードをいくつか持っていますが、私はhex.pmにアップロードしてインターネット経由で配布したくありません。自分のプロジェクトにコードをコピーして貼り付けることで、最も簡単なアプローチを除いて、私が持っているさまざまなプロジェクトにどのように共有できますか?明らかなようにMix.Tasks.Depsマニュアルには記載プロジェクト間でコードを共有するにはどうしたらいいですか?

+0

'mix'にはhex.pm + private reposの代わりにgithubからコードをダウンロードする機能があります。 – mudasobwa

+0

このサイトのルールは、質問/コメントで英語を使用することを規定しています。 – mudasobwa

答えて

2

mixhex.pmのほか、依存関係の2種類をサポートしています。

{: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 

ミックスもGitリポジトリとパスの依存関係をサポートしています

あなたが傘プロジェクトを作成しない限り、後者はおそらくあなたの興味から外れています。前者は実際のパスによっては

{:my_shared_hex_package, path: "../shared/my_shared_hex_package"} 

などのように使用されます。

別の可能性のあるオプションは、プライベートgit [hub]リポジトリを作成し、これを使用して共通のプライベートコードをプロジェクト間で共有することです。そうすれば、プライベートコードを開かなくてもリリースパイプライン(例:継続的インテグレーション、ホットスワップ展開など)を実行することができます。

+0

私は、この回答の質は、gitがプライベートリポジトリで動作することを強調することによってさらに改善できると思います(これは現在、Hexを通してコードを共有したくない大部分のケースで使用されている方法だと思います。 pm)。 – cdegroot

+0

@cdegrootはチップのおかげで更新されました。実際、これが私の最初の提案(OPへのコメントを参照)でしたが、その後、この特定の質問の目標はオフラインで行うことでした。 – mudasobwa

関連する問題