gpt4 book ai didi

go - 导入一个 github 托管的 go 包

转载 作者:行者123 更新时间:2023-12-01 22:42:28 25 4
gpt4 key购买 nike

我是新来的模块构建。我想做的是创建一个带有常用方法的 go 库,其他开发人员可以在他们的 go 代码中使用。
所以首先在我的内部 github 中,我创建了一个 repo https://internalgithub/<org>/lib-go.git repo 结构看起来像

$  tree
.
├── README.md
├── go.mod
├── go.sum
└── main.go
main.go文件有以下内容
package main

import (
"flag"
"os"
"path/filepath"

"k8s.io/client-go/kubernetes"
"k8s.io/client-go/rest"
"k8s.io/client-go/tools/clientcmd"
)

func main() {}

func someFunctinDevelopersNeed(cluster bool) kubernetes.Interface {
if cluster == false {
var kubeconfig *string
.
.
return clientset
}
该代码在我的 org github 的 master 分支中可用。
下一个任务是编写调用此库并依次调用方法 someFunctinDevelopersNeed 的代码。
所以在我的应用程序代码中,我的 main.go 看起来像
package main

import "internalgithub/<org>/lib-go"


func main() {
clientset = someFunctinDevelopersNeed()
.
.
}
但是当我尝试做 go get -t -v internalgithub/<org>/lib-go ,我得到
runtime.main_main·f: function main is undeclared in the main package
有什么我错过的吗?
编辑:
根据建议,现在我做了以下
$ tree
.
├── README.md
├── go.mod
├── go.sum
└── kubernetes
└── kubernetes.go
kubernetes.go以。。开始
package kubernetes

import (
"flag"
"os"
"path/filepath"

"k8s.io/client-go/kubernetes"
"k8s.io/client-go/rest"
"k8s.io/client-go/tools/clientcmd"
)

func someFunctinDevelopersNeed(cluster bool) kubernetes.Interface {
if cluster == false {
var kubeconfig *string
.
.
return clientset
}
即使进行了这些更改,我也遇到了同样的错误

最佳答案

如果您编写自己的库,请不要添加 main包裹。
你可以看到一些流行的 golang 库,比如 go-gin (使用 gin.go ),gorm (使用 gorm.go )
对于您的情况,如果您只想为最常用的功能创建一个集合,您可以添加一个包 utils并将您的实现放入utils.go或其他xxx.go文件

关于go - 导入一个 github 托管的 go 包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64000627/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com