go module_error ai_generated partial

go: ambiguous import: found package X in multiple modules: github.com/foo/bar and github.com/baz/bar

ID: go/go-mod-tidy-ambiguous-import

Also available as: JSON · Markdown · 中文
82%Fix Rate
87%Confidence
1Evidence
2024-05-18First Seen

Version Compatibility

VersionStatusIntroducedDeprecatedNotes
go1.21 active
go1.22 active

Root Cause

Two different modules provide the same import path, causing ambiguity in the module resolution.

generic

中文

两个不同的模块提供了相同的导入路径,导致模块解析歧义。

Official Documentation

https://go.dev/ref/mod#go-mod-file-require

Workarounds

  1. 90% success Use a replace directive in go.mod to force one module: replace github.com/foo/bar => github.com/foo/bar v1.2.3
    Use a replace directive in go.mod to force one module: replace github.com/foo/bar => github.com/foo/bar v1.2.3
  2. 75% success Rename one of the conflicting packages or use a different import path by vendoring.
    Rename one of the conflicting packages or use a different import path by vendoring.

中文步骤

  1. 在 go.mod 中使用 replace 指令强制指定一个模块:replace github.com/foo/bar => github.com/foo/bar v1.2.3
  2. 重命名冲突的包之一,或通过 vendor 使用不同的导入路径。

Dead Ends

Common approaches that don't work:

  1. Running go mod tidy repeatedly hoping it resolves 95% fail

    go mod tidy cannot resolve ambiguity; it requires manual intervention to specify which module to use.

  2. Deleting go.sum and re-running go mod download 80% fail

    Deleting go.sum doesn't fix the import path conflict; it only removes checksums.