我修改了一个现有的github项目有几十个第三方导入的包,但我保持了完整的基本结构,如下所示:
.
├── config
│ ├── config.json
│ └── mysql.sql
├── gowebapp.go
├── LICENSE
├── README.md
├── static
├── template
│ ├── about
│ │ └── about.tmpl
│ ├── base.tmpl
└── vendor
└── app
├── controller
│ ├── about.go
│ ├── error.go
│ ├── index.go
│ ├── login.go
│ ├── notepad.go
│ ├── register.go
│ └── static.go
├── model
│ ├── model.go
│ ├── note.go
│ └── user.go
├── route
│ ├── middleware
│ │ ├── acl
│ │ │ └── acl.go
│ │ ├── httprouterwrapper
│ │ │ └── httprouterwrapper.go
│ │ ├── logrequest
│ │ │ └── logrequest.go
│ │ └── pprofhandler
│ │ └── pprofhandler.go
│ └── route.go
└── shared
├── database
│ └── database.go
├── email
│ └── email.go
├── jsonconfig
│ └── jsonconfig.go
├── passhash
│ ├── passhash.go
│ └── passhash_test.go
├── recaptcha
│ └── recaptcha.go
├── server
│ └── server.go
├── session
│ └── session.go
└── view
├── plugin
│ ├── noescape.go
│ ├── prettytime.go
│ └── taghelper.go
└── view.go
现在我想使用 go 模块来使项目可移植。
main.go 导入如下:
package main
import (
"encoding/json"
"log"
"os"
"runtime"
"app/route"
"app/shared/database"
"app/shared/email"
"app/shared/jsonconfig"
"app/shared/recaptcha"
"app/shared/server"
"app/shared/session"
"app/shared/view"
"app/shared/view/plugin"
)
正如你所看到的,代码主要位于vendor/app
folder.
我已经添加了其他几个包。
问题是手动将包添加到 go.mod 非常乏味,而且毕竟我可能会错过一些导入。
所以我想知道是否有一些自动技巧来获取 go.mod 的依赖项?
初始化模块go mod init module-path
,这将创建go.mod
文件。构建项目go build
。它会自动将所有依赖项添加到go.mod
, 传递性地。
不涉及手动步骤。这go
工具为您做一切。当然你也可以编辑go.mod
如果自动选择的版本不符合您的需要/意图,请文件并“微调”包含的版本。看版本选择默认情况下它是如何完成的。
请注意,从 Go 1.16 开始,go mod tidy
可能需要添加依赖项。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)