这是我的问题。 我有使用我自己创建的一些自定义软件包的应用程序。 我不想在git或其他地方发布这个软件包。 它们只是具有某些特定功能的软件包。Godep加工定制包装
所以,我的项目文件夹看起来像这样:
|--src/github/u-mulder
|--/project_name
|--/Godeps
|--/public
|--/vendor
|--main.go
|--Procfile
我把我的包vendor
文件夹:
-/Godeps
-/public
-/vendor
|---/github.com/u-mulder/package_one/package_one.go
|---/github.com/u-mulder/package_two/package_two.go
-main.go
-Procfile
好吧,我main.go
我成功导入这个包:
import (
"database/sql"
"fmt"
"github.com/u-mulder/package_one"
"github.com/u-mulder/package_two"
// more packages here
)
一切正常。
现在我想准备我的项目,使用godep
部署到heroku。 所以,在我的项目的根文件夹我运行
> godep save ./...
这里来我的问题 - 我的包已经在一个vendor
文件夹,我收到错误:
godep: Package (github.com/u-mulder/package_one) not found
当然,我可以为我的每个软件包创建一个项目。随后的src
的结构将类似于:
|--src/github/u-mulder
|--/package_one
|-package_one.go
|--/package_two
|-package_two.go
|--/project_name
|--/Godeps
|--/public
|--/vendor
|--main.go
|--Procfile
接着上面提到的问题消失了,但第二个出现:
godep: error while inspecting
"$GOPATH/src/github.com/u-mulder/package_one"
: directory"$GOPATH/src/github.com/u-mulder/package_one"
is not using a known version control system
所以,我当然可以在每个项目中创建.git
库包(也许这个问题将会消失),但我不想,这些仅仅是我本人使用的本地包。
所以,问题是 - 在哪里放置我的自定义(或说本地)软件包,以便godep
可以找到它们,并且不希望它们成为“真正的”软件包?
类似的东西我发现here,但它不是关于vendor
文件夹。
为什么你使用“github.com”路径,如果你的来源不在github上?即使对于本地软件包,您也应该使用某种版本控制。如果没有版本控制,godep不能版本化软件包。 – JimB
@JimB好吧,我可以改变我的包的路径到其他东西('本地'或其他),但这没有帮助。而我的所有项目都受版本控制(否则我不能把它放在heroku上)。 –
但是你在问题中说过你不想为每个包创建一个git repo,所以我很困惑你想要做什么。如果您已经销售了所有必需的软件包,您希望godep实现什么功能? – JimB