Skip to content

Conversation

@lendsee
Copy link

@lendsee lendsee commented Jul 24, 2025

rocketmq和polaris共同引用时,会报service.proto冲突,修改文件名,并重新变异

@@ -1,15 +1,16 @@
module github.com/polarismesh/specification
module github.com/lendsee/polarismesh-specification
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

为什么这个要改动

@chuntaojun
Copy link
Member

测试过兼容性吗

@lendsee
Copy link
Author

lendsee commented Jul 28, 2025

测试过兼容性吗

这确实没有,不过我的改动很简单,不影响代码,以下是我的改动步骤, 可以看一下

  1. 修改文件名和相应引用
    mv api/v1/service_manage/service.proto api/v1/service_manage/polaris_service.proto
  2. 进入文件夹
    cd api/v1/service_manage/
  3. 修改当前文件下,所有对 service.proto 的引用,改为 polaris_service.proto
  4. 修改编译文件中,对service.proto 的引用 source/go/build.sh
    cd ../../../source/go
    修改文件中的引用 service.proto => polaris_service.proto
  5. 重新编译,重新生成文件, mac 先进入 bash 环境
    bash build.sh

@lendsee
Copy link
Author

lendsee commented Jul 28, 2025

测试过兼容性吗

这确实没有,不过我的改动很简单,不影响代码,以下是我的改动步骤, 可以看一下

  1. 修改文件名和相应引用
    mv api/v1/service_manage/service.proto api/v1/service_manage/polaris_service.proto
  2. 进入文件夹
    cd api/v1/service_manage/
  3. 修改当前文件下,所有对 service.proto 的引用,改为 polaris_service.proto
  4. 修改编译文件中,对service.proto 的引用 source/go/build.sh
    cd ../../../source/go
    修改文件中的引用 service.proto => polaris_service.proto
  5. 重新编译,重新生成文件, mac 先进入 bash 环境
    bash build.sh

另外,你近期在main上提交了两个改动, 应该是没改全,所以使用 bash build.sh 生成代码时,会生成一些多余文件,导致代码跑不通,我以上的改动是基于 v1.5.5-alpha.1 的变更。

@SkyeBeFreeman
Copy link
Member

SkyeBeFreeman commented Aug 8, 2025

rocketmq和polaris共同引用时,会报service.proto冲突,修改文件名,并重新变异

@lendsee 具体是哪两个依赖,方便提供一个例子吗?

@lendsee
Copy link
Author

lendsee commented Aug 12, 2025

rocketmq和polaris共同引用时,会报service.proto冲突,修改文件名,并重新变异

@lendsee 具体是哪两个依赖,方便提供一个例子吗?

package main

import (
"fmt"
_ "github.com/apache/rocketmq-clients/golang/v5"
_ "github.com/polarismesh/polaris-go"
)

func main(){
fmt.Print("aaa")
}

go mod tidy 可以成功。
但是 go run main.go 报错
panic: proto: file "service.proto" is already registered
previously from: "github.com/apache/rocketmq-clients/golang/v5/protocol/v2"
currently from: "github.com/polarismesh/specification/source/go/api/v1/service_manage"
See https://developers.google.com/protocol-buffers/docs/reference/go/faq#namespace-conflict

@SkyeBeFreeman
Copy link
Member

两个包的package是不一样的,是否可以规避这个问题呢?

@SkyeBeFreeman
Copy link
Member

另外,你近期在main上提交了两个改动, 应该是没改全,所以使用 bash build.sh 生成代码时,会生成一些多余文件,导致代码跑不通,我以上的改动是基于 v1.5.5-alpha.1 的变更。

主分支更新了,不会出现这个问题了。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants