我目前正在使用Golang进行一个私人项目(这是我的新手)。
但是我有一个问题,我不知道为本地软件包定义
通过此链接,我与作者有相同的感觉https://medium.com/@c9s/golang-the-annoying-remote-import-path-c6c7e76517e5
简而言之,如果我在Github中托管项目
更糟糕的是,我可以重写代码来更改导入路径,但是在我的代码中使用代码的人将如何通知存储库更改? 我觉得没有必要要求其他人更新他们的代码。
我是Golang的新手,所以随时可以说"您的问题甚至无效"之类的内容。
您问题的答案:
I don't know what is the proper way to define the import path for local packages.
正如@JimB所说:
If you want to use the Go tools you need to follow the conventions. If you want go get to work, then you need to import it with the full name, otherwise put it wherever you want in GOPATH
因此,如果要使
您的第二个问题的答案:
Wouldn't it cause much rework if I move my codes to Bitbucket or I host my own git server in AWS?
有一种方法可以使用自定义域名作为导入路径,并且仍然在需要的地方托管代码,我认为这就是虚荣导入路径。您只需要向使用的导入文件中提供的html文件中添加一些元标记即可。
本文介绍了如何执行此操作,但总而言之,在访问自定义导入路径时在自定义域中提供的文件中,您需要添加一个
因此,在访问
然后,您继续将代码托管在github中。然后,如果将托管位置更改为代码,则只需更改meta标记的值,但是使用该软件包的所有代码将继续使用完全相同的导入路径
唯一的问题是,现在您的项目可以通过2个不同的路径导入:
这是避免出现问题的唯一方法。如果您正在使用仅在本地使用的软件包,则可以使用@srxf答案,只要知道go工具不会与该代码一起使用即可(例如
作为评论,我知道为本地软件包导入
从Go 1.11开始,随着Go模块的引入,可能会重新回答这个问题。模块可用于解决此"本地路径"难题以及GOPATH范围之外的讨厌项目。
您现在可以通过以下方式初始化您的项目:
然后,您可以通过本地软件包的软件包名称来引用它们。
像这样...
然后(假设您有另一个名为"模型"的本地包)在文件中进行引用
参考:
https://github.com/golang/go/wiki/Modules
访问go模块中的本地包(go 1.11)
我们也正在(私下)开发一个项目,并将其托管在GitLab上,我很清楚
我们要做的是创建一个文件夹,让我们说
到目前为止,它对我们来说效果很好,但是您可能还认为这样做很乏味,确实如此,但是我们没有其他方法可以做到。我们使用