With the development of Go language, more and more people are starting to use Go language for development, and as the scale and complexity of projects increase, we need to better organize our code. This is why Go 1.11 and later introduced the concept of modules. This article will introduce how to use Go modules to manage our projects and dependencies.
1. What is a Go module
In the Go language, a package is the basic unit of code organization. Contains a set of related function, variable, or type definitions. In a project, we may use many packages. However, managing the versions and dependencies of these packages is very difficult. The module introduced in Go 1.11 is to solve this problem.
Simply put, a module is a collection of code packages that contains source code, dependencies and version information. A module can reference other modules or other versions of its own module.
2. How to use Go module
- Create a new module
To create a new Go module project, it needs to be in your working directory Execute the following command:
$ go mod init example.com/hello
This command will create a new module in the current directory and name it example.com/hello
. The way Go resolves dependencies is by locating them via URLs, so module names need to be unique.
If your project is already in a directory outside the GOPATH
directory, you need to set your environment variable GO111MODULE=on# before executing the above command. ##, as shown below:
$ export GO111MODULE=on
- Add dependencies
$ go get example.com/dependencyThis The command will download the latest
dependency package from
example.com and add it to your project. If this package depends on other packages, they will also be automatically downloaded.
$ go get example.com/dependency@v1.1.0This command will download the
dependency package with version
v1.1.0.
- Modify dependencies
go.mod file. Can.
dependency package to
v1.2.0, you can manually modify it in the
go.mod file:
module example.com/hello require example.com/dependency v1.2.0Then run the following command to update the dependencies:
$ go mod tidyThis command will automatically update the dependencies and delete no longer used dependencies from the
go.sum file item.
- Rebuilding the module
$ go buildIf your code contains tests, you can run the tests with the following command:
$ go test -v
- Publish module
$ git tag v1.0.0Then push the tag to the remote repository:
$ git push --tagsWhen others want to use your module, they only need to add your module as a dependency:
module example.com/using_hello require example.com/hello v1.0.0They can run the
go get command as described in the previous section to download your module.
The above is the detailed content of How to use golang module. For more information, please follow other related articles on the PHP Chinese website!

This article explains Go's package import mechanisms: named imports (e.g., import "fmt") and blank imports (e.g., import _ "fmt"). Named imports make package contents accessible, while blank imports only execute t

This article explains Beego's NewFlash() function for inter-page data transfer in web applications. It focuses on using NewFlash() to display temporary messages (success, error, warning) between controllers, leveraging the session mechanism. Limita

This article details efficient conversion of MySQL query results into Go struct slices. It emphasizes using database/sql's Scan method for optimal performance, avoiding manual parsing. Best practices for struct field mapping using db tags and robus

This article demonstrates creating mocks and stubs in Go for unit testing. It emphasizes using interfaces, provides examples of mock implementations, and discusses best practices like keeping mocks focused and using assertion libraries. The articl

This article explores Go's custom type constraints for generics. It details how interfaces define minimum type requirements for generic functions, improving type safety and code reusability. The article also discusses limitations and best practices

This article details efficient file writing in Go, comparing os.WriteFile (suitable for small files) with os.OpenFile and buffered writes (optimal for large files). It emphasizes robust error handling, using defer, and checking for specific errors.

The article discusses writing unit tests in Go, covering best practices, mocking techniques, and tools for efficient test management.

This article explores using tracing tools to analyze Go application execution flow. It discusses manual and automatic instrumentation techniques, comparing tools like Jaeger, Zipkin, and OpenTelemetry, and highlighting effective data visualization


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Dreamweaver CS6
Visual web development tools

ZendStudio 13.5.1 Mac
Powerful PHP integrated development environment

Safe Exam Browser
Safe Exam Browser is a secure browser environment for taking online exams securely. This software turns any computer into a secure workstation. It controls access to any utility and prevents students from using unauthorized resources.

PhpStorm Mac version
The latest (2018.2.1) professional PHP integrated development tool
