2016-12-15 3 views
-1

ここに私の問題があります。 私は自分で作成したカスタムパッケージを使用するgo-appを持っています。 私はこのパッケージをgitや他の場所に公開したくありません。 これは、特定の機能を備えた単なるパッケージです。だから、私のプロジェクトフォルダは、次のようになりますカスタムパッケージを処理するGodep

:私のmain.goに、私は正常にこのパッケージをインポート、

-/Godeps 
-/public 
-/vendor 
    |---/github.com/u-mulder/package_one/package_one.go 
    |---/github.com/u-mulder/package_two/package_two.go 
-main.go 
-Procfile 

オーケー:

|--src/github/u-mulder 
    |--/project_name 
     |--/Godeps 
     |--/public 
     |--/vendor 
     |--main.go 
     |--Procfile 

私はvendorフォルダに私のパッケージを置く

import (
    "database/sql" 
    "fmt" 
    "github.com/u-mulder/package_one" 
    "github.com/u-mulder/package_two" 
    // more packages here  
) 

すべて正常に動作します。

今、godepを使用してherokuに配置するためのプロジェクトを準備したいと考えています。 だから、私のプロジェクトのルートフォルダに私が

> godep save ./... 

を実行し、ここに私の問題が来る - 私のパッケージはvendorフォルダに既にあるように、私はエラーが表示さ:

godep: Package (github.com/u-mulder/package_one) not found

確かに、私ができます私のパッケージごとにプロジェクトを作成してください。その後srcの構造は次のようになります。

|--src/github/u-mulder 
    |--/package_one 
    |-package_one.go 
    |--/package_two 
    |-package_two.go 
    |--/project_name 
     |--/Godeps 
     |--/public 
     |--/vendor 
     |--main.go 
     |--Procfile 

次に、上記の問題がなくなっているが、2番目の1が表示されます。

godep: error while inspecting "$GOPATH/src/github.com/u-mulder/package_one" : directory "$GOPATH/src/github.com/u-mulder/package_one" is not using a known version control system

ので、もちろん私はプロジェクトごとに.gitリポジトリを作成することができますパッケージ(そしておそらくこの問題はなくなるでしょう)が、私は使いたくないローカルパッケージです。

私のカスタム(またはローカル)パッケージをどこに置いてgodepを見つけて本当のパッケージにしたくないのでしょうか?

類似のものが見つかりましたhereですが、vendorというフォルダではありません。私は、次を発見コメント@JimBする

+0

ソースがgithubにない場合は、なぜ "github.com"パスを使用していますか?ローカルパッケージの場合でも、ある種のバージョンコントロールを使用しているはずです。バージョンコントロールがない場合、godepはパッケージをバージョンアップできません。 – JimB

+0

@JimB私は自分のパッケージへのパスを何か( 'local'など)に変更できますが、それは助けになりません。私のプロジェクトはすべてバージョン管理下にあります(そうでなければ私は英雄に置くことができません)。 –

+0

しかし、あなたは、各パッケージにgit repoを作成したくないという質問をしました。だから私はあなたがしようとしていることについて混乱しています。あなたがすでに必要なパッケージをすべて取り揃えていたら、godepで何を達成したいのですか? – JimB

答えて

1

ありがとう:

が最も明白かつ簡単な解決策はただ

keep your dependencies in GOPATH, with version control, and just let godep handle them all (@JimB)

あるそうです、これはgitのためのパッケージ(複数可)を追加し、すべてのこのようなものを意味し。あなたがしたくない場合は

場合は/それを行うことができない、アクションの順序を指定できます

  • コード
  • テスト
  • vendor
  • から、ローカルの依存性(パッケージ)を削除します手動で他の依存性(のような httprouterlibpq、など)
  • を更新バックに、ローカルの依存性を追加する
  • 実行

をコミットしかしobvioulsy、それは良い方法ではありません。

関連する問題