一尘不染

去构建多个/嵌套的包?

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,这是正确的,因为所有源文件都在子包中。

是否有一个命令可以构建所有子包, 而无需显式列出每个 子包?


阅读 170

收藏
2020-07-02

共1个答案

一尘不染

你以后cd到基本目录,使用go build ./...注意,有3个阶段,因为它是一个省略号。这将递归地构建所有子目录。当然,您始终可以go build path/to/my/base/...从任何地方进行操作而无需访问cd目录。

对于使用依赖于go/pkg目录的IDE的用户(例如带有GoSublime的SublimeText3),这非常有用。对依赖包进行更改不会更新自动完成功能,除非您构建该包并将其放置在go/pkg目录中。

我自己的项目分为多个包结构,因此我经常必须go build ./...更新自动完成功能。

2020-07-02