当前位置: 首页 > 面试题库 >

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

苏晓博
2023-03-14
问题内容

说我要创建一个项目并将其托管在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,然后更改返回的标头。

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

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



 类似资料:
  • 关于将Abaqus特定的python库集成到中托管的项目中,也存在类似的问题。但不幸的是,答案与我手头的问题不符。 我正在使用版本6.11-2和的社区版。Abaqus python解释器位于我的windows ows7(64)机器上的以下位置。: 我需要 PyCharm 解析以使其代码完成魔法的库驻留在这里 - 至少我相信它们是这样。 这是我正在尝试编写的脚本的第一行代码。 PyCharm用红色下

  • 问题内容: 我正在为项目使用节点,表达和更多其他依赖项。我想知道如何在Firebase上托管此项目。我的项目将具有controller,view和其他文件夹以使该项目成为可能。它已经具有诸如pug / handlebars的视图引擎。 在线教程仅显示如何使用公用文件夹中的单个index.html托管Firebase。我应该如何将我的项目与所有其他文件夹一起托管?我知道如何在nodeJS中使用fir

  • github 对于开源项目仓库是完全免费,只对私有(private)项目仓库收费。 bitbucket 支持不限数量的免费私有仓库,同时支持5个协作者;但是超过这个数量就要收钱了。 repo.or.cz

  • 根据这些说明,我将Maven包部署到github。https://help.github.com/en/github/managing-packages-with-github-packages/configuring-apache-maven-for-use-with-github-packages#installing-a-package 这起作用了。 现在,我正在安装第二个Maven项目,它

  • 通过我的模型,我有3种类型的代理。目前,我只能知道源中A的总数。但我的目的是通过源代码分别了解A、B和C的数量。所以从逻辑上讲,我需要把A、B和C的代理放在一起,然后分别计算它们的数量。然而,我找不到实现它的方法?