英文:
How to use custom package with glide
问题
我使用golang的Masterminds/glide来管理包。这是我的项目结构:
$GOPATH/
bin/
pkg/
src/
go_test/
long(自定义包:只打印“hello”)
main.go
glide.yaml
vendor/
github.com/lib/pq
在main.go中使用了long包:
package main
import (
"database/sql"
"github.com/lib/pq"
"long"
)
func main() {
// ...
}
glide.yaml文件内容如下:
package: go_test
import:
- package: github.com/lib/pq
当运行go run main.go
时,会出现找不到long包的错误。如果将long包放入vendor/目录中,然后运行glide up
,会显示无法检测到关于"long"依赖的版本控制系统(VCS),但是可以正常运行项目。因此,我想知道如何设置glide以跳过对long包的检测,使项目能够正常运行。
注意:我在yaml文件中使用了ignore字段。如果将long添加到ignore中,项目将能够运行,但无法找到long包。
英文:
I use golang Masterminds/glide to manage package. here is my project:
$GOPATH/
bin/
pkg/
src/
go_test/
long(own custom package: just print a "hello")
main.go
glide.yaml
vendor/
github.com/lib/pq
the long package is used in main.go like :
package main
import(
"database/sql"
"github.com/lib/pq"
"long"
)
func main(
...
}
the glide.yaml is:
package: go_test
import:
- package: github.com/lib/pq
  when go run main.go the error is: can not found package long .
if I put the long package into the vendor/ and then glide up
 it will show can not detect vcs about the "long" dependencies. but can run with project.
 so I want to know how to set that glide will skip the long package detect and the project can run .
note: I use the ignore: in the yaml. if add long to ignore .the project will can run because can't find long package.
答案1
得分: 0
因为正确的包名是从你的项目中的/src
目录开始的完整路径,所以在你的import
语句中应该使用"go_test/long"
而不是只用"long"
。而且,由于这是你自己的代码而不是供应商的依赖项,它不能放在vendor
目录下。
英文:
Because the correct package name is a full path starting from /src
directory in you project you should use "go_test/long"
instead on just "long"
in you import
statement. And because it is your own code and not a vendor dependency it must not be under vendor
directory.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论