Closed shamaton closed 7 years ago
gom は最新版をお使いでしょうか?
今日まっさらな環境でgo getし、ハッシュも確認しました。 最新版だと思います。
GO15VENDOREXPERIMENT を設定されておられたりしますか?
https://github.com/mattn/gom/commit/c54b80f6c7b9ed05e1abae7e90de5e31cb7bcbf5
修正を入れてみました。go1.7.3 は環境変数すら見ない要にしました。確認頂けますか。
確認ありがとうございます。 挙動に変更はなくエラーになりました。
GO15VENDOREXPERIMENT を設定されておられたりしますか?
いえ、設定していません。
このissueなのですが、修正を提案しているというよりも、
の修正が不要ではないか、という確認でした。
app/app.go:26:2: cannot find package "github.com/labstack/echo" in any of:
/path/to/project/src/vendor/github.com/labstack/echo (vendor tree)
vendorへの参照が行われている場合、上記のようなエラーが表示されると思うのですが、#81では表示されていません。 vendor/srcを見に行くようになったという根拠はどこから来ているのかご存知でしょうか。
確かに……、vendor treeへの参照に関するエラーが出ていないですね。
今まっさらな環境にgo1.7.3を入れなおして、gomを https://github.com/mattn/gom/commit/393e714d663c35e121a47fec32964c44a630219b のものにしてみたところ、やはり以前と同じエラーになります。 相変わらずvendor treeに関するエラーは出ません、これがなぜ出ないのかがわからない……。
原因が分かったと思います。
ちょっと動きを変えました。
基本 vendor の下は src を置かない(ただし bin/pkg はあり)フォルダ構成とし
となる様にしました。
@mattn ありがとうございます。 参照エラーが解消されました。
@h3poteto
$GOPATH/src/main.go`
のような配置をされている場合は参照されないようです。
@shamaton ありがとうございます。 むしろGOPATH配下にプロジェクトソースがないとgoのvendoring機能が動いてくれないようで、そちらの問題でした。 なので,むしろ
$ cd $GOPATH
$ tree src
src
└── vendor_prj
├── Gomfile
├── main.go
└── vendor
├── github.com
│ └── spf13
│ └── pflag
└── pkg
という配置で参照されるようになりました。
以前、go1.5とgomの組み合わせだった時は、 _vendor
ディレクトリを作ってgoのvendoringに頼らずに参照していたため、GOPATHと別の場所にプロジェクトソースを置いていたのが問題でした。
ご迷惑をお掛けしました。
:bowing_man:
closable?
On 11/19/16, h3poteto notifications@github.com wrote:
@shamaton ありがとうございます。 むしろGOPATH配下にプロジェクトソースがないとgoのvendoring機能が動いてくれないようで、そちらの問題でした。 なので,むしろ
$ cd $GOPATH $ tree src src └── vendor_prj ├── Gomfile ├── main.go └── vendor ├── github.com │ └── spf13 │ └── pflag └── pkg
という配置で参照されるようになりました。
以前、go1.5とgomの組み合わせだった時は、
_vendor
ディレクトリを作ってgoのvendoringに頼らずに参照していたため、GOPATHと別の場所にプロジェクトソースを置いていたのが問題でした。 ご迷惑をお掛けしました。 :bowing_man:You are receiving this because you were mentioned. Reply to this email directly or view it on GitHub: https://github.com/mattn/gom/issues/83#issuecomment-261696886
@h3poteto いえいえ。 解決したようで何よりです 👍
@mattn
ご対応ありがとうございました!
@mattn can't really read japaneese. Is this the same issue? trying to use gom on circleci. the same thing works on my computer.
ubuntu@box495:~/liberator$ gom install
downloading ....
ubuntu@box495:~/liberator$ gom build
api.go:15:5: cannot find package "github.com/aep/go-segments" in any of:
/usr/local/go/src/gopkg.in/redis.v5 (from $GOROOT)
/home/ubuntu/liberator/vendor/src/gopkg.in/redis.v5 (from $GOPATH)
/home/ubuntu/liberator/src/gopkg.in/redis.v5
/home/ubuntu/.go_workspace/src/gopkg.in/redis.v5
/usr/local/go_workspace/src/gopkg.in/redis.v5
ubuntu@box495:~/liberator$ ls vendor/
bin github.com golang.org gopkg.in pkg
ubuntu@box495:~/liberator$ go version
go version go1.7.3 linux/amd64
Did you update gom latest? go get -u github.com/mattn/gom
If you set GO15VENDOREXPERIMENT, unset it.
@mattn yes (circleci redownloads it every time), and no its not set
@aep Go vendoring function works only under $GOPATH.
I guess that your GOPATH is /home/ubuntu/.go_workspace
, and your source code is located in /home/ubuntu/liberator
. Maybe your source code is not located under GOPATH. So, go vendoring function is not working.
Please copy your source code under $GOPATH, like this https://robots.thoughtbot.com/configure-circleci-for-go.
i'm using gom to avoid gopath :( allright, i guess its not possible then
Hello. @mattun @h3poteto
Vendoring could not work in my project. I got this package(gom) and built my project today.
I think that this fix may be inappropriate. https://github.com/mattn/gom/pull/81
When did vendoring behavior change? I could not find this release note. If you can, I would like to teach me. https://blog.golang.org/go1.7
Sincerely,
-- detail Using version is 1.7.3
GOPATH setting
Error sample
--
英語だと説明不足感があるので日本語で補足します。 下記バージョンだと、Go1.7.3の環境において
vendor/
でビルドできました。 https://github.com/mattn/gom/commit/393e714d663c35e121a47fec32964c44a630219bプルリクエスト(#81)のエラーを見ていると、vendor treeに関するエラー表示がないため、 build/install時にvendorへの参照がおこなわれていないのではないかと思います。 (おそらくGOPATHにvendorが含まれている)
確認いただけると、助かります。 よろしくお願いします。