首页 > 解决方案 > 由于间接导入相同的依赖项,防止 Go 模块覆盖直接依赖项版本

问题描述

我有一个具有以下依赖项的 Go mods 项目:

module github.com/owner0/my-project

go 1.15

require (
    github.com/owner1/projectA v1.0.0
    github.com/owner2/projectB v0.5.0
)

但是github.com/owner1/projectA v1.0.0依赖项本身需要github.com/owner2/projectB v0.8.0(注意更高版本v0.8.0而不是v0.5.0我的项目中的版本):

github.com/owner1/projectA

go 1.15

require (
    github.com/owner2/projectB v0.8.0
)

这会导致我当前的项目实际更改和拉取github.com/owner2/projectB v0.8.0而不是github.com/owner2/projectB v0.5.0,从而导致:

module github.com/owner0/my-project

go 1.15

require (
    github.com/owner1/projectA v1.0.0
    github.com/owner2/projectB v0.8.0
)

有没有办法不允许github.com/owner1/projectA v1.0.0用较新的版本覆盖第二个依赖项?尽管v0.5.0第一个依赖项需要v0.8.0.

标签: gomoduledependenciesproject

解决方案


推荐阅读