怎麼樣做一個可以被Import的Go包
在這裡我將嘗試怎麼做一個最小的Go,放在github給別人引用
結論&要點
- go.mod 中 module 應該為你的github路徑,這樣可以避免引用名稱不同的問題
- 小版本更新使用
tag
來上傳,破壞性更新再modle 最後方加上/v2, v3等字樣
- 小版本更新使用
- 檔名不要使用main.go 其餘應該都可以
- package會是別人取用工具包的名稱
- 已完成的github包 github.com/limiu82214/GoHellowWorldForImport
過程
- 初始化
go mod init GoHellowWorldForImport
並上傳至github - 寫main.go,並在另一個地方使用
go get ...
看到錯誤訊息 import "github.com/limiu82214/GoHellowWorldForImport" is a program, not an importable package (compile),因此猜測不能用main.go - 更名為 GoHellowWorldForImport 在試一次 (包含package與函式)
- 由於快取的關係,新增tag代表新的版本號並上傳再試一次
- 拿到錯誤訊息,推測module名必須是
github.com/limiu82214/GoHellowWorldForImport
以符合import格式
go: github.com/limiu82214/GoHellowWorldForImport@v0.0.2: parsing go.mod:
module declares its path as: GoHellowWorldForImport
but was required as: github.com/limiu82215/GoHellowWorldForImport"
- 測試成功,更改參數並記錄要點
留言
張貼留言