解决编译ArgoCD时发生的错误:找到模块go.opentelemetry.io/otel@latest(v1.2.0),但不包含包go.opentelemetry.io/otel/api/metric的方法
简述
有时候,出现标题错误的问题是由于 ArgoCD 依赖的 go-redis 与其依赖的 go.opentelemetry.io 包的要求不一致引起的。下面将介绍解决这个问题的方法。
错误全部内容
github.com/focas/focas/experimental/argocd-go imports
github.com/argoproj/argo-cd/v2/pkg/client/clientset/versioned imports
github.com/argoproj/argo-cd/v2/pkg/client/clientset/versioned/typed/application/v1alpha1 imports
github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1 imports
github.com/argoproj/argo-cd/v2/util/helm imports
github.com/argoproj/argo-cd/v2/util/cache imports
github.com/go-redis/redis/v8 imports
github.com/go-redis/redis/v8/internal imports
go.opentelemetry.io/otel/api/metric: module go.opentelemetry.io/otel@latest found (v1.2.0), but does not contain package go.opentelemetry.io/otel/api/metric
解决方案
获取go-redis的特定提交。
go get github.com/go-redis/redis/v8@1f32092a3b04c21b6e8e51e2c94c03448d14a2c9
根据
- undefined: otel.Meter or cannot find package “go.opentelemetry.io/otel/api/trace” · Issue #1534 · go-redis/redis