0

I am using Circle CI to test my project. The project is a simple Go application consisting of a few packages and a main.go file. When referencing packages within my project I simply import them as "projectName/packageName" in the code. This works fine locally, however, when I push to git and it gets built on Circle CI I get the following errors.

package crypto-compare-go/handlers: unrecognized import path "crypto-compare-go/handlers" (import path does not begin with hostname)

我通过将 github.com/myGitUsername/projectName 附加到我的本地包导入来解决此问题,这意味着当我在本地开发时如果我更改项目中的一个包,我必须推送到 git,然后拉到能够即使它们都在同一个父项目文件夹下,也要使用它们。这似乎是一个缓慢、非常低效的过程。

以前有人用 Circle CI 遇到过这个问题吗?

4

1 回答 1

1

我通过将 github.com/myGitUsername/projectName 附加到我的本地包导入来解决此问题,这意味着当我在本地开发时如果我更改项目中的一个包,我必须推送到 git,然后拉到能够即使它们都在同一个父项目文件夹下,也要使用它们。这似乎是一个缓慢、非常低效的过程。

没有。你搞错了。您的 go 将使用本地$GOPATH/src/github.com/myGitUsername/projectName目录进行编译。只有在运行时才能访问 github.com go get -u <package path>。它记录在如何编写 Go 代码中。

请注意,您无需在构建代码之前将代码发布到远程存储库。组织你的代码就像你有一天会发布它只是一个好习惯。在实践中,您可以选择任意路径名称,只要它是标准库和更大的 Go 生态系统所独有的。

于 2018-01-04T11:53:38.707 回答