go mod 与 v2 预发布版本冲突

问题描述 投票:0回答:1

我正在开发 hap 包的版本 2,它是一个 HTTP API 框架。版本 2 还没有准备好,最新版本 ls

v2.0.0-alpha.2
,如下所示:

* 9319436 - bug fix, refined action error output (HEAD -> master, tag: v2.0.0-alpha.2, origin/master, origin/HEAD) (16 hours ago) <xrfang>
* 2b1046a - various improvements (20 hours ago) <xrfang>
* 464dcb7 - example: added source IP control and global logging (tag: v2.0.0-alpha.1) (2 days ago) <xrfang>
* 94d6607 - reversed finalizer execution order (2 days ago) <xrfang>
* 7604144 - added global actions and finalizers (2 days ago) <xrfang>
... ...

整个repo的目录结构为:

.
├── example
├── go.mod
├── LICENSE
├── README.md
└── v2
    ├── api
    ├── arg
    ├── example
    ├── go.mod
    ├── handler
    └── param

根目录下的

go.mod
是:

module go.xrfang.cn/hap

go 1.17

v2/go.mod
看起来像:

module go.xrfang.cn/hap/v2

go 1.22.1

现在的问题是go无法获取v2预发布,

go mod tidy
在一个使用
hap/v2
的项目下:

go: downloading go.xrfang.cn/hap/v2 v2.0.0-alpha.2
go: usermgr imports
        go.xrfang.cn/hap/v2: go.mod has non-.../v2 module path "go.xrfang.cn/hap" at revision v2.0.0-alpha.2
go: usermgr imports
        go.xrfang.cn/hap/v2/api: go.mod has non-.../v2 module path "go.xrfang.cn/hap" at revision v2.0.0-alpha.2
go: usermgr imports
... ...

使用

go get

$ GOPROXY=direct go get -u -v -x go.xrfang.cn/hap/[email protected]
# get https://go.xrfang.cn/hap/v2?go-get=1
# get https://go.xrfang.cn/hap/v2?go-get=1: 200 OK (0.196s)
get "go.xrfang.cn/hap/v2": found meta tag vcs.metaImport{Prefix:"go.xrfang.cn/hap/v2", VCS:"git", RepoRoot:"https://e.coding.net/xrfang/go/hap.git"} at //go.xrfang.cn/hap/v2?go-get=1
mkdir -p /home/xrfang/go/pkg/mod/cache/vcs # git3 https://e.coding.net/xrfang/go/hap.git
# lock /home/xrfang/go/pkg/mod/cache/vcs/0f263e071aed73ec9ef118d38d27fc7cbbcc33f1c19bbac5423684b8b560e3f9.lock
# /home/xrfang/go/pkg/mod/cache/vcs/0f263e071aed73ec9ef118d38d27fc7cbbcc33f1c19bbac5423684b8b560e3f9 for git3 https://e.coding.net/xrfang/go/hap.git
cd /home/xrfang/go/pkg/mod/cache/vcs/0f263e071aed73ec9ef118d38d27fc7cbbcc33f1c19bbac5423684b8b560e3f9; git tag -l
0.002s # cd /home/xrfang/go/pkg/mod/cache/vcs/0f263e071aed73ec9ef118d38d27fc7cbbcc33f1c19bbac5423684b8b560e3f9; git tag -l
cd /home/xrfang/go/pkg/mod/cache/vcs/0f263e071aed73ec9ef118d38d27fc7cbbcc33f1c19bbac5423684b8b560e3f9; git -c log.showsignature=false log --no-decorate -n1 '--format=format:%H %ct %D' refs/tags/v2.0.0-alpha.2 --
0.003s # cd /home/xrfang/go/pkg/mod/cache/vcs/0f263e071aed73ec9ef118d38d27fc7cbbcc33f1c19bbac5423684b8b560e3f9; git -c log.showsignature=false log --no-decorate -n1 '--format=format:%H %ct %D' refs/tags/v2.0.0-alpha.2 --
cd /home/xrfang/go/pkg/mod/cache/vcs/0f263e071aed73ec9ef118d38d27fc7cbbcc33f1c19bbac5423684b8b560e3f9; git cat-file blob 931943650fcb745bf3219ad4bf1ca93177047a5a:go.mod
0.002s # cd /home/xrfang/go/pkg/mod/cache/vcs/0f263e071aed73ec9ef118d38d27fc7cbbcc33f1c19bbac5423684b8b560e3f9; git cat-file blob 931943650fcb745bf3219ad4bf1ca93177047a5a:go.mod
go: go.xrfang.cn/hap/[email protected]: go.mod has non-.../v2 module path "go.xrfang.cn/hap" at revision v2.0.0-alpha.2
go go-modules
1个回答
0
投票

在 go-nuts 论坛的帮助下发现并解决了问题。问题是我自己的 go-get Facade 返回了不正确的元标记。它回来了

<meta name="go-import" content="go.xrfang.cn/hap/v2 git https://e.coding.net/xrfang/go/hap.git">

正确的标签应该是:

<meta name="go-import" content="go.xrfang.cn/hap git https://e.coding.net/xrfang/go/hap.git">

因为

/v2
不是这个存储库的根目录。

© www.soinside.com 2019 - 2024. All rights reserved.