英文:
Go mod replace (patch) only one package of dependency
问题
我在go.mod
文件中有一个依赖库,例如foo.bar/dep
。我想只修补这个依赖库中的一个包,例如foo.bar/dep/pkg1
,并将其放置在源代码库的某个位置,例如./_patch/foo.bar/dep/pkg1
。
当我尝试这样做并替换它时:
go mod edit -replace foo.bar/dep/pkg1=./_patch/foo.bar/dep/pkg1
go mod tidy
我的go.mod
看起来像这样:
require (
foo.bar/dep v1.0.0
)
replace foo.bar/dep/pkg1 => ./_patch/foo.bar/dep/pkg1
但是当我构建和运行命令时,代码仍然使用原始的foo.bar/dep/pkg1
模块,而不是我的修补版本。
是否可能只替换依赖库中的某个特定包,或者唯一的方法是替换整个库?
英文:
I have a dependency library in go.mod
file, e.g. foo.bar/dep
. I want to patch only one package of this dependency, e.g. foo.bar/dep/pkg1
and place it somewhere in source repository, e.g. ./_patch/foo.bar/dep/pkg1
.
When I try to do this and replace it with
go mod edit -replace foo.bar/dep/pkg1=./_patch/foo.bar/dep/pkg1
go mod tidy
and my go.mod
looks like
require (
foo.bar/dep v1.0.0
)
replace foo.bar/dep/pkg1 => ./_patch/foo.bar/dep/pkg1
But when I build and run cmd, the code is still using origin foo.bar/dep/pkg1
module instead of my patch.
Is it possible to replace only some particular package of dependency, or the only way is to replace the whole library?
答案1
得分: 4
> 是否可以仅替换某个特定的依赖包 [?]
不可以。
> [...] 或者唯一的方法是替换整个 [模块]?
是的,这是唯一的方法。
英文:
> Is it possible to replace only some particular package of dependency [?]
No.
> [...] or the only way is to replace the whole [module]?
Yes, this is the only way.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论