[英]Why doesn't “go get gopkg.in/…” work while “go get github.com/…” OK?
[英]Caveats if go package name doesn't start with github.com?
我最近開始使用go並計划為我的代碼使用以下目錄結構: src/mycompany.com/project
(因此包名稱將是mycompany.com/project/component
),但是在代碼審查期間我的同事(與之合作) go之前)指出將代碼放在src/github.com/mycompany/project
是一種約定(因此包名稱為github.com/mycompany/project/component
)。
我可以理解這對於個人項目來說很方便,但對於公司項目而言,這看起來很奇怪。 為什么哪個源控制網站公司正在使用它? 如果公司稍后決定轉向bitbucket.org
會怎么樣 - 如果所有項目都被重構為包含名稱以bitbucket.org
開頭?
這是絕對有可能不使用github.com
: kubernetes有軟件包的名稱以開始k8s.io/kubernetes
,去書中有包名與開始gopl.io
(兩者使用github上)。
問題是:如果包名不是以github.com
開頭的話,有什么警告嗎? 例如, dep
可能無法正常工作( go get seems to work fine
)或其他什么?
另外:包名為mycompany.com/project
並在github上托管源代碼的正確方法是什么?
如果您在mycompany.com
上設置Web服務器來托管您的Go軟件包,那么該方法沒有任何問題。
但如果這樣做的唯一理由是擁有“虛榮”包名,那可能就不值得了。
換句話說:您的包名必須與其托管位置相匹配。 如果您正在使用GitHub在github.com/mycompany/foo
上托管您的項目,那么您的軟件包名稱是 github.com/mycompany/foo
在這個問題上別無選擇。
如果您想在GitHub上托管您的軟件,但仍然使用mycompany.com
作為軟件包名稱,那么您可以使用GitHub頁面功能設置GitHub來托管mycompany.com
的網頁。 但是,如果您是一家成熟的公司,那么您可能已經將您的網站托管在其他地方,並且不能將托管移動到GitHub。 即使您還沒有公司網站,實際上也沒有理由為Go軟件包做到這一點。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.