我刚刚开始写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
失败,这是正确的,因为所有源文件都在子包中。
是否有构建所有子包的命令,没有明确列出每个子包?
答案 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
来更新我的自动完成。