Windowsでgo-revelを使用する問題
916 ワード
最近プロジェクトではrevelフレームワークを用いてgolang開発が行われ、プロジェクトフレームワークはrevelの標準定義に従って開発され、vendorを用いて依存管理が行われた結果、
修正して再度instal revel、実行してOKになって、現在githubの上で互換性がなくて、後でMRを持つ時間があります
revel run
を用いてプロジェクトをコンパイルする際にrevelが自動的に生成したtmp/main.go
では、依存するrevelパスが正しくなく、プロジェクト接頭辞が多くgithubで始まるのではなく、正常にコンパイルできなくなり、起動できなくなり、しかもこのmain.go
は自動生成で、修正するたびに自動生成されます.しかし、同僚のパソコンに問題がないことに気づいた.彼はlinuxシステムで、システムと関係があると推定し、後にrevelのソースコードを見たが、案の定、revelは自動的にファイルを生成する際にvendorへの依存に対して、システムの問題を考慮しなかった.revel/cmd/harness/reflect.go
においてvendorに依存する経路を扱う際に用いられるハードコーディング/vendor/
は,恐ろしいif vendorIdx := strings.Index(root, "/vendor/") ; vendorIdx != -1 {
return filepath.ToSlash(root[vendorIdx+8:])
}
修正して再度instal revel、実行してOKになって、現在githubの上で互換性がなくて、後でMRを持つ時間があります
if vendorIdx := strings.Index(root, filepath.FromSlash("/vendor/")) ; vendorIdx != -1 {
return filepath.ToSlash(root[vendorIdx+8:])
}