英文:
How does one upgrade go project made for 1.9 to be compatiable with 1.18?
问题
我正在尝试升级一个针对 >= 1.9 版本的 Go 项目,但显然在 1.18 版本上无法工作,原因是缺少 go.mod 文件,也就是依赖项的锁定文件。
我应该如何正确升级它?
原始源代码位于:https://github.com/annttu/latenssi-go
我遇到了一堆 "does not contain package" 的错误,但我不明白为什么会出现这种情况?
GOROOT=/opt/homebrew/Cellar/go/1.18/libexec #gosetup
GOPATH=/Users/sm/go #gosetup
/opt/homebrew/Cellar/go/1.18/libexec/bin/go mod tidy #gosetup
go: 找到 github.com/annttu/latenssi-go/collector/config 包的模块
go: 找到 github.com/annttu/latenssi-go/probe/probe 包的模块
go: 找到 github.com/annttu/latenssi-go/proto 包的模块
go: 找到 github.com/annttu/latenssi-go/probe/config 包的模块
go: 找到 github.com/annttu/latenssi-go/probe/grpc 包的模块
go: 找到 github.com/annttu/latenssi-go/collector/destination 包的模块
go: 找到 github.com/annttu/latenssi-go/collector/grpc 包的模块
go: 找到 github.com/annttu/latenssi-go/probe/result 包的模块
go: 找到 github.com/miekg/dns 包的模块
go: 在 github.com/miekg/dns 中找到 github.com/miekg/dns v1.1.48
go: 找到 github.com/annttu/latenssi-go/probe/result 包的模块
go: 找到 github.com/annttu/latenssi-go/collector/config 包的模块
go: 找到 github.com/annttu/latenssi-go/probe/probe 包的模块
go: 找到 github.com/annttu/latenssi-go/probe/config 包的模块
go: 找到 github.com/annttu/latenssi-go/collector/destination 包的模块
go: 找到 github.com/annttu/latenssi-go/probe/grpc 包的模块
go: 找到 github.com/annttu/latenssi-go/collector/grpc 包的模块
go: 找到 github.com/annttu/latenssi-go/proto 包的模块
github.com/annttu/lantenssi-go/src/github.com/annttu/latenssi-go/collector 导入
github.com/annttu/latenssi-go/collector/config: 找到模块 github.com/annttu/latenssi-go@latest (v0.0.0-20180822071121-cbe7dd3b5c65),但不包含包 github.com/annttu/latenssi-go/collector/config
github.com/annttu/lantenssi-go/src/github.com/annttu/latenssi-go/collector 导入
github.com/annttu/latenssi-go/collector/destination: 找到模块 github.com/annttu/latenssi-go@latest (v0.0.0-20180822071121-cbe7dd3b5c65),但不包含包 github.com/annttu/latenssi-go/collector/destination
github.com/annttu/lantenssi-go/src/github.com/annttu/latenssi-go/collector 导入
github.com/annttu/latenssi-go/collector/grpc: 找到模块 github.com/annttu/latenssi-go@latest (v0.0.0-20180822071121-cbe7dd3b5c65),但不包含包 github.com/annttu/latenssi-go/collector/grpc
github.com/annttu/lantenssi-go/src/github.com/annttu/latenssi-go/collector/destination 导入
github.com/annttu/latenssi-go/proto: 找到模块 github.com/annttu/latenssi-go@latest (v0.0.0-20180822071121-cbe7dd3b5c65),但不包含包 github.com/annttu/latenssi-go/proto
github.com/annttu/lantenssi-go/src/github.com/annttu/latenssi-go/probe 导入
github.com/annttu/latenssi-go/probe/config: 找到模块 github.com/annttu/latenssi-go@latest (v0.0.0-20180822071121-cbe7dd3b5c65),但不包含包 github.com/annttu/latenssi-go/probe/config
github.com/annttu/lantenssi-go/src/github.com/annttu/latenssi-go/probe 导入
github.com/annttu/latenssi-go/probe/grpc: 找到模块 github.com/annttu/latenssi-go@latest (v0.0.0-20180822071121-cbe7dd3b5c65),但不包含包 github.com/annttu/latenssi-go/probe/grpc
github.com/annttu/lantenssi-go/src/github.com/annttu/latenssi-go/probe 导入
github.com/annttu/latenssi-go/probe/probe: 找到模块 github.com/annttu/latenssi-go@latest (v0.0.0-20180822071121-cbe7dd3b5c65),但不包含包 github.com/annttu/latenssi-go/probe/probe
github.com/annttu/lantenssi-go/src/github.com/annttu/latenssi-go/probe/grpc 导入
github.com/annttu/latenssi-go/probe/result: 找到模块 github.com/annttu/latenssi-go@latest (v0.0.0-20180822071121-cbe7dd3b5c65),但不包含包 github.com/annttu/latenssi-go/probe/result
英文:
I'm trying to upgrade a go-project that was made for >= 1.9, but apperantly doesn't work with 1.18 due to lacking go.mod file, aka the lock for deps.
How do I properly upgrade it?
Original source code is at: https://github.com/annttu/latenssi-go
I'm getting a bunch of does not contain package and I don't understand as to why?
GOROOT=/opt/homebrew/Cellar/go/1.18/libexec #gosetup
GOPATH=/Users/sm/go #gosetup
/opt/homebrew/Cellar/go/1.18/libexec/bin/go mod tidy #gosetup
go: finding module for package github.com/annttu/latenssi-go/collector/config
go: finding module for package github.com/annttu/latenssi-go/probe/probe
go: finding module for package github.com/annttu/latenssi-go/proto
go: finding module for package github.com/annttu/latenssi-go/probe/config
go: finding module for package github.com/annttu/latenssi-go/probe/grpc
go: finding module for package github.com/annttu/latenssi-go/collector/destination
go: finding module for package github.com/annttu/latenssi-go/collector/grpc
go: finding module for package github.com/annttu/latenssi-go/probe/result
go: finding module for package github.com/miekg/dns
go: found github.com/miekg/dns in github.com/miekg/dns v1.1.48
go: finding module for package github.com/annttu/latenssi-go/probe/result
go: finding module for package github.com/annttu/latenssi-go/collector/config
go: finding module for package github.com/annttu/latenssi-go/probe/probe
go: finding module for package github.com/annttu/latenssi-go/probe/config
go: finding module for package github.com/annttu/latenssi-go/collector/destination
go: finding module for package github.com/annttu/latenssi-go/probe/grpc
go: finding module for package github.com/annttu/latenssi-go/collector/grpc
go: finding module for package github.com/annttu/latenssi-go/proto
github.com/annttu/lantenssi-go/src/github.com/annttu/latenssi-go/collector imports
github.com/annttu/latenssi-go/collector/config: module github.com/annttu/latenssi-go@latest found (v0.0.0-20180822071121-cbe7dd3b5c65), but does not contain package github.com/annttu/latenssi-go/collector/config
github.com/annttu/lantenssi-go/src/github.com/annttu/latenssi-go/collector imports
github.com/annttu/latenssi-go/collector/destination: module github.com/annttu/latenssi-go@latest found (v0.0.0-20180822071121-cbe7dd3b5c65), but does not contain package github.com/annttu/latenssi-go/collector/destination
github.com/annttu/lantenssi-go/src/github.com/annttu/latenssi-go/collector imports
github.com/annttu/latenssi-go/collector/grpc: module github.com/annttu/latenssi-go@latest found (v0.0.0-20180822071121-cbe7dd3b5c65), but does not contain package github.com/annttu/latenssi-go/collector/grpc
github.com/annttu/lantenssi-go/src/github.com/annttu/latenssi-go/collector/destination imports
github.com/annttu/latenssi-go/proto: module github.com/annttu/latenssi-go@latest found (v0.0.0-20180822071121-cbe7dd3b5c65), but does not contain package github.com/annttu/latenssi-go/proto
github.com/annttu/lantenssi-go/src/github.com/annttu/latenssi-go/probe imports
github.com/annttu/latenssi-go/probe/config: module github.com/annttu/latenssi-go@latest found (v0.0.0-20180822071121-cbe7dd3b5c65), but does not contain package github.com/annttu/latenssi-go/probe/config
github.com/annttu/lantenssi-go/src/github.com/annttu/latenssi-go/probe imports
github.com/annttu/latenssi-go/probe/grpc: module github.com/annttu/latenssi-go@latest found (v0.0.0-20180822071121-cbe7dd3b5c65), but does not contain package github.com/annttu/latenssi-go/probe/grpc
github.com/annttu/lantenssi-go/src/github.com/annttu/latenssi-go/probe imports
github.com/annttu/latenssi-go/probe/probe: module github.com/annttu/latenssi-go@latest found (v0.0.0-20180822071121-cbe7dd3b5c65), but does not contain package github.com/annttu/latenssi-go/probe/probe
github.com/annttu/lantenssi-go/src/github.com/annttu/latenssi-go/probe/grpc imports
github.com/annttu/latenssi-go/probe/result: module github.com/annttu/latenssi-go@latest found (v0.0.0-20180822071121-cbe7dd3b5c65), but does not contain package github.com/annttu/latenssi-go/probe/result
答案1
得分: 1
开始使用go mod init
命令:
cd /path/to/latenssi-go
go mod init github.com/annttu/latenssi-go
go mod tidy
如果是一个分支,可以添加一个replace指令来避免修改源代码:
replace github.com/annttu/latenssi-go => github.com/samip5/latenssi-go
注意:原始项目 annttu/latenssi-go
的源代码位于 src/
目录下,这样是行不通的。
你需要将源代码直接放在项目的根目录下,而不是 src
目录下。src
只在使用 GOPATH 模式(Go v1.11之前)时才会被使用。
英文:
Starts with go mod init
cd /path/to/latenssi-go
go mod init github.com/annttu/latenssi-go
go mod tidy
For a fork, add a replace directive to avoid modifying the sources:
replace github.com/annttu/latenssi-go => github.com/samip5/latenssi-go
Note: the original project annttu/latenssi-go
has its sources in src/
: that won't work.
You need your sources directly at the root project level, not under src
.
src
is only used by GOPATH when building GOPATH
mode (pre-Go v1.11).
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论