Golang如何导入没有gopath的本地包?

我使用GOPATH,但对于这个当前的问题,我面对它没有帮助。我想要能够创建特定于项目的包:
myproject/
├── binary1.go
├── binary2.go
├── package1.go
└── package2.go

我尝试了多种方式,但我如何得到package1.go工作在binary1.go或binary2.go等等?

例如;我想能够导入“package1”,然后能够运行go build binary1.go,一切正常,没有错误被抛出,该软件包找不到GOROOT或GOPATH。我需要这种功能的原因是大型项目;我不想参考多个其他包或将它们保存在一个大文件

虽然我的旧方式工作,不再是“正确的”方式做到这一点。您应该使用默认情况下在Go 1.6中启用的供应商功能;您基本上在供应商目录中添加您的“外部”或“依赖”包;在编译时,编译器将首先使用这些包。

找到。我可以导入本地包与GOPATH通过创建package1的子文件夹,然后导入与import1.go和binary2.go脚本中导入“./package1”,像这样:

binary1.go

...
import (
        "./package1"
      )
...

所以我当前的目录结构看起来像这样:

myproject/
├── binary1.go
├── binary2.go
├── package1/
│   └── package1.go
└── package2.go

我还应该注意,相对路径(至少在go 1.5)也工作;例如:

import "../packageX"

相关文章

程序目录结构 简单实现,用户登录后返回一个jwt的token,下次请求带上token请求用户信息接口并返回信息...
本篇博客的主要内容是用go写一个简单的Proof-of-Work共识机制,不涉及到网络通信环节,只是一个本地的简...
简介 默克尔树(MerkleTree)是一种典型的二叉树结构,其主要特点为: 最下面的叶节点包含存储数据或其...
接下来学习并发编程, 并发编程是go语言最有特色的地方, go对并发编程是原生支持. goroutine是go中最近本...
先普及一下, 什么是广度优先搜索 广度优先搜索类似于树的层次遍历。从图中的某一顶点出发,遍历每一个顶...
第一天: 接口的定义和实现 第二天: 一. go语言是面向接口编程. 在学习继承的时候说过, go语言只有封装,...