Go引用私有库


技术教程555 阅0 评

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.

最后说两句

整个过程非常简单,但是有几个需要注意⚠️ 的点:

  1. 私有包创建mod的时候需要mod包名和git仓库地址一样
  2. 私有包最好打tag
  3. 导入包之前需要修改GOPRIVATE地址为自己的git地址,且电脑有登陆过的凭据
  4. 导入后可适当简化包名称,方便引用
最后更新 2021-11-22
评论 ( 0 )
OωO
隐私评论