去构建多个/嵌套包?

时间:2017-02-22 18:14:06

标签: go

我刚刚开始写Go(所以0经验),并想知道Go是否支持任何形式的“构建所有源文件”,如mvn install所做的那样。

我的项目结构是

src
  `-github.com
          `-myproject
               |- package1
               |     `- main.go
               `- package2
                     |- lib1_used_by_main.go
                     `- lib2_used_by_main.go

当我这样做时

cd src/github.com/myproject
go build

这与no buildable Go source files in src/github.com/myproject失败,这是正确的,因为所有源文件都在子包中。

是否有构建所有子包的命令,没有明确列出每个子包

1 个答案:

答案 0 :(得分:13)

cd到基目录之后,使用go build ./...请注意,有3个句点,因为它是省略号。这将以递归方式构建所有子目录。当然,您可以随时从go build path/to/my/base/...进行cd而无需go/pkg到目录。

这对于那些使用依赖于go/pkg目录的IDE的用户非常有用,例如SublimeText3和GoSublime。在构建程序包之前,对依赖程序包进行更改不会更新自动填充程序,而是将其放在go build ./...目录中。

我自己的项目被分解为多个包结构,所以我经常需要C:\Program Files\dotnet\sdk 来更新我的自动完成。