我的公司有以下两个代码存储库:
* product-common(go.mod中的模块名称:company.com/product/common)
* product-eventmngr(go.mod中的模块名称:company.com/product/common/event)
自述文件建议使用以下结构来存储它们:
$GOPATH
├── src
│ └── company.com
├── product-common/
└── product-eventmngr/
尝试构建任何导入“ company.com/product/common/event”的代码都会导致“找不到提供包company.com/product/common/event ...的模块”。
我确实发现要工作的是删除“ common /”,因此它只是“ company.com/product/event”,但这也涉及替换其在内部测试文件中的所有调用。
我的问题是:
1)当模块不在“ ./src/company.com/product-common”中时,调用“ company.com/product/common/event”模块是一种不好的做法吗?
2)如何最好地解决上述情况,而又不从对后者的所有调用中删除“ common /”?