我有一个小的package,在根目录下有main.go和go.mod,在src/*
中有几个文件,src
中的文件在所有文件上都包含package name
:
下面是main.go的内容:
package main
import (
package_name "github.com/user/package/src"
)
func main() {
package_name.Run()
}
这是我的.mod:
module github.com/user/package
go 1.20
我试图模仿https://github.com/junegunn/fzf的结构。但在我的情况下,每当我尝试做go install github.com/user/package@latest
,我得到一个错误package github.com/user/package is not a main package
相同的不会发生与fzf,你能请解释我的原因吗?
2条答案
按热度按时间sr4lhrrt1#
根据https://pkg.go.dev/github.com/asolopovas/dsync?tab=versions,您以前发布过
v1.0.0
。使用-x
选项运行go install
可确认:下载
https://proxy.golang.org/github.com/asolopovas/dsync/@v/v1.0.0.zip
并检查其内容。事实上,v1.0.0
的github.com/asolopovas/dsync
包不是主包。现在您已经更新了
master
分支,将其转换为主包,标记一个新版本(如v1.1.0
)并重试。希望go install github.com/asolopovas/dsync@latest
现在可以工作了。qv7cva1a2#
我通过阅读文档,在我的
go.mod
文件中添加撤销属性,并按照Zeke Lu的建议创建新的标签v1.0.1(像v1.1这样的标签不起作用,所以我不得不选择v1.0.1格式)来解决我的问题,然后我访问了https://pkg.go.dev/github.com/username/package@v1.0.1并单击请求,一夜之间我就有了一个新版本的软件包,它可以使用go install
命令。go.mod