Home >Backend Development >Golang >Understanding GO Modules and problems encountered
The following golang tutorial column will introduce you to the understanding of GO Modules and the problems encountered.
The go version used is 1.16.5, the code editor is GoLang2020.3.4, and the GO Modules test is done on window10
GOROOT refers to the installation path of go, and GOPATH refers to the project path of go. Before GOModules, GOPATH was used. Since there are many problems with GOPATH, GOModules is used instead.
There is no concept of version control in GOPATH mode, which has fatal flaws, which will at least cause the following problems:
1. When executing go get, you cannot convey any expectations for version information, which means you cannot know which version you are currently updating, nor can you pull the specific version you expect by specifying
2. When running a Go application, you cannot guarantee that others have the same version of the third-party libraries you expect to depend on. That is to say, in terms of project dependency library management, you cannot guarantee that everyone’s dependency versions are the same. Consistent
3. You cannot handle the reference problem of different versions such as v1, v2, v3, etc., because the import paths in GOPATH mode are all the same, github.com/foo/bar.
4. The Go language official began to promote Go modules (formerly vgo) starting from Go1.11. Starting from Go1.13, it is no longer recommended to use the GOPATH usage mode. Go modules have gradually become stable, so there is no need to continue to use them in new projects. GOPATH mode.
1. Go language’s long-standing dependency management problem
2. “Eliminate” the existing GOPATH usage model
3. Other dependency management tools in the unified community (providing migration functions)
1. Set the project path
2. Open the editor and run the following command in the project root directory
##3 , Install third-party dependencies #Now you can see the relationship between GOModules and GOPATH Now, the "go get" command will place the third-party dependency package in the GOPATH path. In order to make everyone's development version consistent during multi-person development, GOModules does version control to ensure that everyone uses the same version of dependencies. , My understanding is that GOModules is an upgraded version of GOPATHgo mod init
Finally, please note that the editor I use is GOLang, GOModules will have the following problems, This problem shows that the third-party dependency package was successfully downloaded and installed, mainly due to the editor
The following is the solution
The above is the detailed content of Understanding GO Modules and problems encountered. For more information, please follow other related articles on the PHP Chinese website!