Go多模块依赖管理
Go Multi Module Dependency Management
我是 goLang 的新手。我正在尝试开发一个多模块项目。我的工作区文件夹是
喜欢
root
1-Authz
1.1-Main.go
1.2-go.mod (contains:module com.mbt.authz)
1.3-go.sum
2-Product
2.1-Main.go
2.2-go.mod (contains:module com.mbt.product)
2.3-go.sum
3-go.work
4-GoMultiModule.code-workspace
go.work folder is like
go 1.18
use(
./Authz
./Product
)
两个模块本身都可以运行。但我想在 Authz 中定义一个方法并调用它
来自产品的功能。我应该怎么做,如何从我的本地工作区向 Product 模块添加依赖项?
为了测试,只需向 Product/main.go
添加引用 Authz
:
的导入
import com/mbt/authz/aPackage
这假设您在 Authz
项目中定义了一个不同于 main
的包中的方法。
这是许多新的 golang 开发人员的常见问题解答。
在golang中,模块和包不是一回事。一个模块可能包含一个或多个包。模块使用 go mod init [modulename]
命令初始化。此命令将创建一个 go.mod 文件。包可以用 package [packagename]
在代码中简单地定义。可以使用 import "[packagename] [modulename]/[pathofpackage]"
导入同一模块中的包(我们称之为本地包)
在你的情况下,如果你不想创建不同的模块,你可以删除 Authz 和 Products 文件夹中的 go.mod 和 go.sum 文件。然后在根文件夹中,运行 go mod init root
。然后在产品代码中导入 auth 包,类似 import (authz "root/authz")
(authz 是 Authz 代码中指定的包名称)
如果 authz 必须是不同的模块,它将被视为不同的模块,不能像本地包一样直接导入。
要导入 Authz 文件夹中的本地模块,您需要像这样编辑 products 文件夹中的 go.mod 文件:
module somemodulename
go 1.16
require (
authzmodulename v0.0.0
)
replace authzmodulename v0.0.0 => ../Authz/
我是 goLang 的新手。我正在尝试开发一个多模块项目。我的工作区文件夹是 喜欢
root
1-Authz
1.1-Main.go
1.2-go.mod (contains:module com.mbt.authz)
1.3-go.sum
2-Product
2.1-Main.go
2.2-go.mod (contains:module com.mbt.product)
2.3-go.sum
3-go.work
4-GoMultiModule.code-workspace
go.work folder is like
go 1.18
use(
./Authz
./Product
)
两个模块本身都可以运行。但我想在 Authz 中定义一个方法并调用它 来自产品的功能。我应该怎么做,如何从我的本地工作区向 Product 模块添加依赖项?
为了测试,只需向 Product/main.go
添加引用 Authz
:
import com/mbt/authz/aPackage
这假设您在 Authz
项目中定义了一个不同于 main
的包中的方法。
这是许多新的 golang 开发人员的常见问题解答。
在golang中,模块和包不是一回事。一个模块可能包含一个或多个包。模块使用 go mod init [modulename]
命令初始化。此命令将创建一个 go.mod 文件。包可以用 package [packagename]
在代码中简单地定义。可以使用 import "[packagename] [modulename]/[pathofpackage]"
在你的情况下,如果你不想创建不同的模块,你可以删除 Authz 和 Products 文件夹中的 go.mod 和 go.sum 文件。然后在根文件夹中,运行 go mod init root
。然后在产品代码中导入 auth 包,类似 import (authz "root/authz")
(authz 是 Authz 代码中指定的包名称)
如果 authz 必须是不同的模块,它将被视为不同的模块,不能像本地包一样直接导入。
要导入 Authz 文件夹中的本地模块,您需要像这样编辑 products 文件夹中的 go.mod 文件:
module somemodulename
go 1.16
require (
authzmodulename v0.0.0
)
replace authzmodulename v0.0.0 => ../Authz/