看看golang软件包的发展和改进程度如何,我想知道软件包版本的问题是如何解决的?
我看到一种方法是将第三方软件包存储在项目文件夹下。
但是如果我用go get
安装它呢?
答案 0 :(得分:252)
go get
会将软件包安装在GOPATH
列出的第一个目录中(一个环境变量,可能包含以冒号分隔的目录列表)。您可以使用go get -u
更新现有软件包。
您还可以使用go get -u all
更新GOPATH
对于较大的项目,为每个项目创建不同的GOPATH可能是合理的,因此更新项目A中的库不会导致项目B中出现问题。
键入go help gopath
以了解有关GOPATH
环境变量的更多信息。
答案 1 :(得分:44)
@tux答案很棒,只是想补充一点,您可以使用go get来更新特定的包:
go get -u full_package_name
答案 2 :(得分:7)
以上回答有以下问题:
要避免这些,请执行以下操作:
go get -d
答案 3 :(得分:4)
要指定版本或提交:
go get -u otherpackage@1.2.3
go get -u otherpackage@git-sha
答案 4 :(得分:3)
转到1.13
(从模块根目录执行)
更新指定的依赖项:
go get -u <package-name>
将所有直接和间接依赖项更新为最新的次要或补丁升级(忽略预发行版):
go get -u ./...
# or
go get -u=patch ./...
参考:
https://github.com/golang/go/wiki/Modules#daily-workflow
go help get
答案 5 :(得分:0)
转到路径并输入
go get -u ./..
它将更新所有需要的包。