如何在自己的项目中使用私有Go模块
引言
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
< 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!