增量构建不适用于go build,仅适用于go install

时间:2019-04-20 06:26:11

标签: go build

我正在Ubuntu上使用Go Modules和1.11.4运行一个项目,该项目在WSL中运行。 我的问题是我正在使增量构建按预期工作。也许这是由于我误解了它的本意,但如果有人可以澄清这种情况,我将很高兴。

仅作为示例,如果我执行go build ./...,则一切都会按预期进行。 如果我现在再次进行go build ./...而没有做任何更改,我的期望是由于构建的增量,这次将什么也不会构建。但是它再次构建了一切。我尝试做go build -i ./...(即使我的理解是从1.10开始不再需要-i),但是结果是相同的。一段时间以来,这一直困扰着我,因为在阅读了文档之后,我确实希望go build命令产生增量构建。

前几天,我意识到,如果我改为先做go install ./...,然后再做go install ./...,那么第二次就如我所愿。如果更改单个模块并再次运行go install ./...,则仅 会重新构建该模块,这也是我期望的。所以这给了我增量构建。

所以我的问题是 1)我是否误解了go build ./...以及它如何处理增量构建?我需要改用go install吗? 2)通常,我们使用-o标志来指定输出路径,一个接一个地构建模块。相反,使用go install没有-o选项来指定输出路径。我可以做些什么来使用-o来达到类似于go install的目标吗?

谢谢!

0 个答案:

没有答案