簡體   English   中英

警告如果包名不是以github.com開頭的?

[英]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.comkubernetes有軟件包的名稱以開始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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM