如何在Go中配置二进制名称而不更改路径

时间:2014-08-02 08:24:26

标签: go

我正在使用Go开发一个小工具。最近,我注意到该工具需要从shell脚本调用,因为它使用shell函数。

假设我的工具名为atool。因此,go build生成二进制atool,我的工具的Go结构为github.com/myaccount/atool。现在,我想用atool-cli构建go build二进制文件,并从shell脚本atool调用它。我怎样才能做到这一点?

我想到的唯一方法是将结构转换为github.com/myaccuont/atool-cli。但是我不想这样做,因为已经宣布了,而且这条道路似乎有点有趣。

2 个答案:

答案 0 :(得分:11)

只是发表评论"官方":

go build -o atool-cli github.com/you/atool

答案 1 :(得分:7)

一种方法是将自己的结构本身作为一个库,并提供主要包,将它们的主要入口点放在子目录中。

您可以在main中添加github.com/myaccount/atool/atool-cli个包,其导入github.com/myaccount/atool并实施func main()。一些包含多个命令的包甚至都有一个/cmd/目录,其中包含多个可以构建的cli工具(请参阅camlistore作为示例)