【发布时间】:2014-10-08 17:26:52
【问题描述】:
我无法完成本应轻松的任务。我了解用于代码组织的 GitHub 模型(即库存储库和使用该库的应用程序存储库)。我认为这太棒了。但我经常发现我希望mylib 与一个简单的可执行文件捆绑在一个main.go 文件中。 main.go 应该是 package main 并且应该导入 mylib。换句话说,它应该是关于如何构建使用该库的应用程序的准确文档。
我的意思是,因为提供一个简单的命令行界面来包装你的库通常足够方便,所以应该有一种简单的方法可以做到这一点,而无需创建另一个 repo,golang 应该会有所帮助。
我想要以下内容:
$GOPATH/src/github.com/me/mylib
mylib.go
mylib_also.go
main.go
mylib 是库 (package mylib),main.go 是 package main,在运行 go install 时会生成 bin/mylib 和 pkg/mylib.a。
main.go 应该导入 "github.com/me/mylib"(如果我现在这样做,我会收到周期性导入错误)或 go 会理解正在发生的事情,因为应该内置此功能并且回购中的 main.go 生成执行官。可能需要导入(并删除循环错误)是更好的方法。
现在,我必须这样做
$GOPATH/src/github.com/me/mylib
mylib/
mylib.go
main.go
所以我必须导入 github.com/me/mylib/mylib 这太荒谬了。
总之,go install 应该允许一个包的特殊情况和一个导入包并提供一个简单的 cli 来演示包 API 的 main。 GitHub模型推广了两个repos,不过简单的clis合二为一应该很容易吧!
【问题讨论】:
标签: go package main code-organization