如何在自己的项目中使用私有Go模块

发布时间:2023年12月17日

引言

Go生态系统的一个有利方面是大量模块是开源的。因为它们是开源的,所以可以自由访问、检查、使用和学习。然而,有时出于各种原因,有必要创建一个私有的Go模块,例如保持私有的业务逻辑在公司内部。

在本教程中,您将发布私有Go模块,设置访问私有模块的身份验证,并在项目中使用私有Go模块。

分发私有模块

与许多编程语言不同,Go从存储库而不是中央包服务器分发模块。这种方法的一个好处是,发布私有模块与发布公共模块非常相似。Go私有模块通过私有源代码库分发,而不是需要一个完全独立的私有包服务器。由于大多数源代码托管选项都支持开箱即用,因此无需设置额外的私有服务器。

为了使用私有模块,您需要访问私有Go模块。在本节中,您将创建并发布私有模块,您可以在本教程的后面使用该模块从另一个Go程序访问私有模块。

要创建新的私有Go模块,首先克隆其所在的私有GitHub存储库。作为先决条件的一部分,你在你的GitHub账户中创建了一个名为==mysecret==的私有空仓库,这个仓库将用于你的私有模块。这个仓库可以复制到你电脑上的任何地方,但许多开发人员倾向于为他们的项目创建一个目录。在本教程中,你将使用一个名为projects的目录。

创建projects目录并导航到它:

mkdir projects
cd projects

projects目录下,运行git clone将你的私有仓库==mysecret==克隆到你的计算机上:

git clone git@github.com:your_github_username/mysecret.git

Git将确认它克隆了你的模块,并可能警告你克隆了一个空仓库。如果是这样,这就不是你需要担心的事情了:

OutputCloning into 'mysecret'...
warning: You appear to have cloned an empty repository.

接下来,使用cd进入你克隆的新目录==mysecret==,并使用go mod init以及你的私有仓库的名称来创建一个新的go模块:

cd mysecret
go mod init github.com/your_github_username/mysecret

创建模块后,就该添加一个可以在其他项目中使用的函数了。使用nano或者你最喜欢的文本编辑器打开一个与仓库同名的文件,例如==mysecret==.go。名称并不重要,可以是任何名称,但使用与仓库相同的名称,可以更容易地确定使用新模块时首先查找哪个文件:

nano mysecret.go

==mysecret==.go文件,将包命名为与你的仓库相同的名称,然后添加一个SecretProcess函数来打印Running the secret process!调用时:

projects/mysecret/mysecret.go

package mysecret

import "fmt"

func SecretProcess() {
   
	fmt.Println("Running the secret process!")
}

现在已经创建了私有模块,可以将其发布到私有存储库以供其他人使用。由于私有仓库只允许最初访问,因此可以控制谁有权访问私有模块。你可以限制自己访问,但也可以让朋友或同事访问。

由于私有和公共Go模块都是源代码库,发布私有Go模块的过程与发布公共Go模块的过程相同。要发布新模块,请使用git add命令将更改暂存到当前目录中,然后使用git commit命令将这些更改提交到本地仓库:

git add .
git commit -m "Initial private module implementation"

你将看到Git确认首次提交成功,以及提交中包含的文件摘要:

Output[main (root-commit) bda059d] Initial private module implementation
 2 files changed, 10 insertions(+)
 create mode 100644 go.mod
 create mode 100644 mysecret.go
<
文章来源:https://blog.csdn.net/QIU176161650/article/details/134975141
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。