golang从两个不同的文件位置编译同一个包

golang从两个不同的文件位置编译同一个包,go,Go,我构建项目的方式与以下类似 /workspace /src /package1 /vendor /src /somepackage /anotherpackage /package1 My GOPATH设置为/workspace/工作区/供应商 注意:这不是使用go 1.5供应商选项 到目前为止,在外建/开发工作流程中,一切都进行了编译并运行良好。 我现在的情况是,我想将一个库导入供应商目录workspace/vendor/src/p

我构建项目的方式与以下类似

/workspace
  /src
    /package1
  /vendor
    /src
      /somepackage
      /anotherpackage
      /package1
My GOPATH设置为
/workspace/工作区/供应商

注意:这不是使用go 1.5供应商选项

到目前为止,在外建/开发工作流程中,一切都进行了编译并运行良好。 我现在的情况是,我想将一个库导入供应商目录workspace/vendor/src/package1,但在workspace/src/package1目录中编写一些单元测试

当测试运行时,它在vendor目录中找不到package1中的方法


有没有办法让供应商包代码像这样被识别到同一名称空间中?

您是否要求在两个不同路径中的两个文件夹之间“拆分”包的代码?go工具无法执行此操作,因为它会获取在gopath中任何文件夹上找到的第一个文件夹。如果您正在积极参与一个项目,为什么它会进入供应商gopath而不是src one


正是因为这样的区别,我通常推荐一个gopath。如果您想了解供应商依赖关系,我建议对您拥有的每个主软件包都这样做。

您是否要求在两个不同GOPATH中的两个文件夹之间“拆分”软件包的代码?go工具无法执行此操作,因为它会获取在gopath中任何文件夹上找到的第一个文件夹。如果您正在积极参与一个项目,为什么它会进入供应商gopath而不是src one


正是因为这样的区别,我通常推荐一个gopath。如果您想了解供应商依赖关系,我建议对您拥有的每个主软件包都这样做。

您是否要求在两个不同GOPATH中的两个文件夹之间“拆分”软件包的代码?go工具无法执行此操作,因为它会获取在gopath中任何文件夹上找到的第一个文件夹。如果您正在积极参与一个项目,为什么它会进入供应商gopath而不是src one


正是因为这样的区别,我通常推荐一个gopath。如果您想了解供应商依赖关系,我建议对您拥有的每个主软件包都这样做。

您是否要求在两个不同GOPATH中的两个文件夹之间“拆分”软件包的代码?go工具无法执行此操作,因为它会获取在gopath中任何文件夹上找到的第一个文件夹。如果您正在积极参与一个项目,为什么它会进入供应商gopath而不是src one


正是因为这样的区别,我通常推荐一个gopath。如果您想了解供应商依赖关系,我建议对您拥有的每个主软件包都这样做。

正如captncraig所说:go工具无法做到这一点

但您可以在任何需要的文件集上自由调用go编译器本身:
go工具编译…


当然,这将重新引入某种Makefile样式的构建系统。这是可行的,但所有由
go build
go install
完成的繁重工作都将丢失,并且将不得不保存在您的Makefiles中。

正如captncraig所说:go工具无法做到这一点

但您可以在任何需要的文件集上自由调用go编译器本身:
go工具编译…


当然,这将重新引入某种Makefile样式的构建系统。这是可行的,但所有由
go build
go install
完成的繁重工作都将丢失,并且将不得不保存在您的Makefiles中。

正如captncraig所说:go工具无法做到这一点

但您可以在任何需要的文件集上自由调用go编译器本身:
go工具编译…


当然,这将重新引入某种Makefile样式的构建系统。这是可行的,但所有由
go build
go install
完成的繁重工作都将丢失,并且将不得不保存在您的Makefiles中。

正如captncraig所说:go工具无法做到这一点

但您可以在任何需要的文件集上自由调用go编译器本身:
go工具编译…


当然,这将重新引入某种Makefile样式的构建系统。这是可行的,但是由
go build
go install
完成的所有繁重工作都将丢失,并且将不得不保存在您的makefile中。

谢谢您的回答。我想知道这是否可以做到。看起来不是。为什么对答案不重要,尽管我承认这不是一个理想的情况,所以我需要重新思考这个方法。再次感谢汉克斯的回答。我想知道这是否可以做到。看起来不是。为什么对答案不重要,尽管我承认这不是一个理想的情况,所以我需要重新思考这个方法。再次感谢汉克斯的回答。我想知道这是否可以做到。看起来不是。为什么对答案不重要,尽管我承认这不是一个理想的情况,所以我需要重新思考这个方法。再次感谢汉克斯的回答。我想知道这是否可以做到。看起来不是。为什么对答案不重要,尽管我承认这不是一个理想的情况,所以我需要重新思考这个方法。再次感谢