git仓库如果是公开的,那么我们可以直接导入包使用,但是私有的不行,需要做一些操作
1. 创建仓库
创建一个用于存放私有库的项目
2. 创建私有包项目
创建项目:
# 创建项目目录
mkdir private-package-import && cd private-package-import
# 初始化go mod
go mod init git.zqcnc.cn/test/private-package-import.git
初始化mod包一定要用上面创建私有包的git地址
编写业务逻辑:
// calc.go
package private_package_import
func Add(a, b int) int {
return a+b
}
上传到git项目并打tag:
# 初始化git项目并上传
git init
git add .
git commit -a -m "func add"
git remote add origin https://git.zqcnc.cn/test/private-package-import.git
git push -u origin master
# 打tag
git tag v0.0.1
git push --tags
打tag方便管理
3. 创建使用包项目
mkdir private-package-import-example && cd private-package-import-example
go mod init
4. 设置环境变量导入包
go env -w GOPRIVATE="git.zqcnc.cn"
go get git.zqcnc.cn/test/private-package-import.git
5. 替换包名
默认包名太长,且有后缀,代码中不好引用,可以用replace
替换掉,取一个短的名字
module private-package-import-example
go 1.17
require test/private-package-import v0.0.1 // indirect
replace test/private-package-import v0.0.1 => git.zqcnc.cn/test/private-package-import.git v0.0.1
6. 调用私有包方法
代码:
// main.go
package main
import (
calc "Testing/private-package-import"
"fmt"
)
func main() {
fmt.Println("1 + 2 =", calc.Add(1,2))
}
输出:
for arm64.
Got a connection, launched process /private/var/folders/wy/g_2j2y253zgcckblv6zl8tc00000gn/T/GoLand/___1go_build_private_package_import_example (pid = 30235).
1 + 2 = 3
Exiting.
最后说两句
整个过程非常简单,但是有几个需要注意⚠️ 的点:
- 私有包创建mod的时候需要mod包名和git仓库地址一样
- 私有包最好打tag
- 导入包之前需要修改
GOPRIVATE
地址为自己的git地址,且电脑有登陆过的凭据 - 导入后可适当简化包名称,方便引用
最后更新 2021-11-22