gpt4 book ai didi

go - 管理硬编码导入路径

转载 作者:数据小太阳 更新时间:2023-10-29 03:32:11 24 4
gpt4 key购买 nike

在 Go 中,一些包是有版本控制的是很常见的。所以一个程序可能看起来像这样:

package main

import (
"github.com/go-gl/gl/v3.3-core/gl"
"github.com/go-gl/glfw/v3.2/glfw"
)

// ... do stuff

有时,我可能想更新 glfw 的版本。让我们想象一下 GLFW 3.3 绑定(bind)到 Go,我想从 3.2 更新。

我可能在一个项目中有多个 Go 文件都使用 glfw。我不想进入其中的每一个并手动更新导入的版本。理想情况下,我也不会复制那条漫长的路径,我可以在每个项目的一个地方定义它。

  • 也许我可以写一个脚本来查找+替换“github.com/go-gl/glfw/v3.2/glfw”
  • 也许我可以用 Genny 制作文件模板
  • 也许我可以在根 Go 路径“glfw”->“github.com/go-gl/glfw/v3.2/glfw”中创建一个符号链接(symbolic link),在更改版本时更新它,然后使用 import “glfw”
    • 但是此信息随后存在于项目“外部”,因此克隆我的项目的任何人都不知道要使用哪个版本
    • 但这是一个全局变化,我可能有多个项目需要依赖不同的版本

理想情况下,我可以在每个源文件中做这样的事情:

package main

import (
$gl
$glfw
)

在一些项目级的点文件中,像这样:

gl=github.com/go-gl/gl/v3.3-core/gl
glfw=github.com/go-gl/glfw/v3.2/glfw

或者,附加到 go build 的命令行参数定义常量,如下所示:

go build -Dgl=github.com/go-gl/gl/v3.3-core/gl -Dglfw=github.com/go-gl/glfw/v3.2/glfw

其他人目前如何处理这个问题?

最佳答案

参见 github.com/golang/go/wiki/Modules了解管理包版本的推荐方法。

关于go - 管理硬编码导入路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57948841/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com