Go 如何在源目录之外构建?
我的go应用程序目录结构如下所示:Go 如何在源目录之外构建?,go,Go,我的go应用程序目录结构如下所示: /app go.mod go.sum main.go cd app; go build ; cd .. 当我构建应用程序时,我通常会将cd放入该目录并构建 cd app go build 我想知道我是否可以在没有cd的情况下构建应用程序目录。 当我转到go build/app时,它会打印当前目录或任何父目录中未找到的go:go.mod文件;请参阅“go帮助模块”我非常确定您需要在应用程序目录中构建 作为一种解决方法,如果您只是想在另一个目录的
/app
go.mod
go.sum
main.go
cd app; go build ; cd ..
当我构建应用程序时,我通常会将cd放入该目录并构建
cd app
go build
我想知道我是否可以在没有cd的情况下构建应用程序目录。
当我转到
go build/app
时,它会打印当前目录或任何父目录中未找到的go:go.mod文件;请参阅“go帮助模块”
我非常确定您需要在应用程序目录中构建
作为一种解决方法,如果您只是想在另一个目录的命令行上,并想用一个命令运行构建,您可以将cd和go构建命令链接在一起,如下所示:
/app
go.mod
go.sum
main.go
cd app; go build ; cd ..
这与键入的数量相同,但只需按几下向上箭头,就可能出现在命令历史记录中
注意,这是针对bash或类似UNIX样式的shell的。如果使用Windows cmd,那么我认为应该是这样的(未经测试,因为我现在没有现成的Windows机器访问权限):
要在源目录之外进行构建,只需将源目录与go file一起传递以进行构建 在您的特定情况下(假设您只是在/app之外) 那就是
go build app/main.go
您可能需要将go.mod移动到父目录(即在/app之外)请参阅:go build
需要从模块目录运行
最简单的方法是将cd
放入模块目录(cd/app
)以运行go build
命令
(可能有某种方法可以创建一个虚假的本地
go.mod
文件,并从那里引用您的/app
模块,但我无法设计出一种方法来实现这一点)您的go.mod
和go.sum
文件应该位于项目的根目录下,然后您就可以运行go-build/app
,而不会出现任何问题。切勿将文件名与go-build