5 回复

使用除 GitHub 之外的其他代码托管仓库。

更多关于Golang中如何自定义导入路径名称而非使用"github.com/xxx/xx"格式的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html


为什么不想让他们看到你在使用什么呢?

那就不要使用那些包。或者将它们以其他名称进行本地化。

但请先检查许可证,确认是否允许在不重新分发的情况下修改它们。因为你还需要更改这些库中的导入路径……

我只想分享.exe文件,并且使用了多个来自github.com的第三方库。我不希望客户知道我具体使用了哪些内容,特别是这些GitHub导入,这些导入看起来就像是完整的URL,他们可以直接复制粘贴到浏览器中访问代码库(因为.exe文件可以用记事本打开)。我想防止这种情况发生。

在Go语言中,可以通过go.mod文件中的replace指令和module声明来实现自定义导入路径名称。这种方法允许你在本地开发时使用简化的路径,而不暴露原始的GitHub路径。

实现步骤:

  1. 修改go.mod文件:在go.mod中添加replace指令,将原始路径映射到自定义路径。
  2. 使用自定义路径导入:在代码中使用自定义路径导入包。

示例:

假设你有一个依赖包,原始路径为github.com/someuser/somerepo,你想将其改为common/somerepo

1. 修改go.mod文件:

在项目的go.mod文件中添加replace指令:

module myproject

go 1.21

require (
    github.com/someuser/somerepo v1.0.0
)

replace github.com/someuser/somerepo => ./vendor/common/somerepo

这里,./vendor/common/somerepo是本地目录路径,你可以根据实际情况调整。如果包在本地,直接指向本地路径;如果仍在远程,可以指向另一个远程路径,但通常用于本地开发。

2. 在代码中使用自定义路径导入:

在Go代码中,使用common/somerepo导入:

package main

import (
    "common/somerepo"
)

func main() {
    somerepo.SomeFunction()
}

注意事项:

  • 本地开发:这种方法主要用于本地开发或私有部署,确保自定义路径指向正确的包位置。如果包在远程仓库,你可能需要将包下载到本地并修改路径。
  • 构建一致性:在团队协作或CI/CD环境中,需要确保所有成员和构建系统使用相同的go.mod配置,以避免导入错误。
  • Go Modules要求:此方法依赖于Go Modules(Go 1.11及以上版本),确保你的项目已初始化模块(通过go mod init)。

通过这种方式,构建文件(如go.mod)中不会直接显示原始的GitHub路径,而是使用自定义路径,满足你的隐私需求。

回到顶部