看看golang包是如何积极地成长和改进的,我想知道包版本的问题是如何解决的?

我认为一种方法是将第三方包存储在项目文件夹下。

但是如果我用go get安装它呢?


当前回答

go get将把包安装到GOPATH(一个可能包含冒号分隔的目录列表的环境变量)中列出的第一个目录中。你可以使用go get -u来更新现有的包。

你也可以使用go get -u all来更新GOPATH中的所有包

对于较大的项目,为每个项目创建不同的gopathath可能是合理的,这样在项目a中更新库就不会在项目B中引起问题。

输入go help gopath以查找有关gopath环境变量的更多信息。

其他回答

@tux的回答很好,只是想补充一点,你可以使用go get更新特定的包:

go get -u full_package_name

进入path并键入

go get -u ./...

它将更新所有的require包。

如果你想从一个特定的分支升级一个版本,你可以使用:

go get -u <path-to-repo>@<branch>

以上答案存在以下问题:

它们更新所有内容,包括你的应用程序(以防你有未提交的更改)。 它们更新了您可能已经从项目中删除但已经在磁盘上的包。

为了避免这些,请采取以下措施:

删除要更新的第三方文件夹。 打开app文件夹,运行Go get -d

go get将把包安装到GOPATH(一个可能包含冒号分隔的目录列表的环境变量)中列出的第一个目录中。你可以使用go get -u来更新现有的包。

你也可以使用go get -u all来更新GOPATH中的所有包

对于较大的项目,为每个项目创建不同的gopathath可能是合理的,这样在项目a中更新库就不会在项目B中引起问题。

输入go help gopath以查找有关gopath环境变量的更多信息。