如果将GO项目包托管在不同的存储库中,如何组织它(GitHub和SourceForge)

rellocs木头:

说我要创建一个项目并将其托管在GitHub上,我必须创建项目结构是这样的:

src/github.com/user/      
     myproject/
     main.go
     util/
       fileutil.go

main.go中,我必须将导入写为:

import github.com/user/myproject/util/fileutil

并且现在我也想将此项目托管到SourceForge上,是否应该复制整个项目并修改路径?似乎还不够好。还有其他方法吗?我需要的只是在src文件夹下创建我的项目,并且可以根据需要将其托管到任何回购中,而无需更改软件包。

优生:

如果开发应用而不是库

如果您不打算让其他项目“导入”您自己的项目(也就是说,如果您正在实现的是应用程序而不是库),则有可能避免github.com在本地路径中进行任何引用

注意:这不是推荐的方法,但是从我的测试来看,它确实有效,如果您以此方式构建代码,则可以编译,运行和测试代码。

您可以如下创建项目结构:

src/
    myproject/
        main.go
        util/
            fileutil.go

然后,您可以像这样导入:

import "myproject/util/fileutil"

然后,您可以在myproject任何位置托管文件夹的内容,而无需更改项目文件中的路径。

如果开发图书馆

如果您实际上是在开发其他人将能够导入的库,那么它将变得更加复杂,因为这些项目实际上将需要完整的路径来导入您的项目。

您可以创建“虚荣”导入路径,例如myproject.io/...使用meta此处所述的标记:

https://golang.org/cmd/go/#hdr-Remote_import_paths

这样,当该go工具查询您的myproject.io/页面时,您应该使用以下标题进行响应:

<meta name="go-import" content="myproject.io git https://github.com/user/myproject">

然后,如果决定离开github,请更改返回的标头。

请注意,这不会阻止用户直接从github导入您的项目,如果要避免您需要使用canonical import path规范中描述的技术

https://golang.org/doc/go1.4#canonicalimports

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何组织我的 Laravel 项目的 github 存储库,以便用户可以轻松安装和运行它?

如何在Stackdriver中查看github组织存储库

如何将现有的 Visual Studio 项目推送到不同的 GitHub 存储库

如何在保留提交的同时将项目从我的个人存储库移动到组织存储库

如何在GitHub中对小型项目进行组织和分类?

将Go微服务保留在Github上的不同存储库中

GItHub App访问组织中的存储库

如何从GitHub克隆项目但将Bitbucket用作远程存储库

如何将新项目代码推送到现有 github 存储库中的特定分支?

如何将github存储库中的cpp项目编译为exe?

如何在包中组织Go代码

Git 和 Github 显示存储库中的不同分支

如何将现有的android项目推送到组织的存储库?

GitHub组织可以将代码提交到存储库吗?

Azure DevOps-组织项目和存储库

将组织之间的问题转移到不同的存储库

如何在Jenkins Job中克隆github组织的私有存储库

如何在几个GIT存储库中组织大型项目?

GitHub和BitBucket如何解析它们托管的git存储库?

Go:运行从GitHub存储库派生的Go项目时,“不允许使用内部软件包”

如何通过github API列出组织私有存储库?

如何通过URL列出Github组织的所有存储库?

重构现有项目时如何组织存储库?

使用 ssh 查看我的 GitHub 组织中的存储库

将项目上传到不同的存储库

如何将软件包发布到GitHub软件包存储库?

在GitHub和VSTS上托管git存储库

如何在我的项目存储库中处理EF,MVC4,WebPage和朋友之类的包

如何将项目从android studio推送到现有存储库中的特定github文件夹中?