> 백엔드 개발 > Golang > Go 모듈 사용에 대한 자세한 설명

Go 모듈 사용에 대한 자세한 설명

풀어 주다: 2020-01-04 16:59:56
앞으로
2386명이 탐색했습니다.

Go 모듈 사용에 대한 자세한 설명

Go 모듈 소개

모듈은 Go 1.11의 새로운 실험적 기능으로 vgo의 발전을 기반으로 한 새로운 패키지 관리 도구입니다.

Go 1.11 이전의 패키지 관리 도구는 모두 PATH 또는 공급업체 디렉터리를 기반으로 했기 때문에 다른 버전에 대한 종속성 문제를 잘 해결할 수 없었습니다. 모듈은 GOPATH 외부의 새로운 패키지 관리 방법입니다. 모듈을 사용하면 GOPATH와 완전히 독립됩니다.

참고: Go 모듈에는 Go 버전 1.11 이상이 필요합니다.

예제

1. GOPATH

$ mkdir -p /tmp/scratchpad/hello
$ cd /tmp/scratchpad/hello
로그인 후 복사

2 외부에 디렉터리를 만듭니다. hello.go

$ go mod init github.com/you/hello
go: creating new go.mod: module github.com/you/hello
로그인 후 복사

3를 편집합니다. 그리고 run

package main
import (
    "fmt"
    "rsc.io/quote"
)
func main() {
    fmt.Println(quote.Hello())
}
로그인 후 복사

참고: go build는 종속 패키지를 자동으로 다운로드하며 golang.org/x/...와 같은 패키지는 벽을 우회해야 합니다. GOPROXY 환경 변수를 추가하여 프록시를 설정할 수 있습니다.

$ go build
$ ./hello
Hello, world.
로그인 후 복사

At 이번에는 go. mod 파일이 자동으로 업데이트되며, 여기에는 프로젝트에 필요한 종속성과 해당 버전 번호가 포함됩니다

export GOPROXY=https://goproxy.io
로그인 후 복사

go.mod 외에도 go는 예상되는 해시가 포함된 go.sum이라는 파일도 유지 관리합니다. 특정 모듈 버전의 값:

$ cat go.mod
module github.com/you/hello
require rsc.io/quote v1.5.2
로그인 후 복사

go는 go.sum 파일을 사용하여 해당 모듈의 향후 다운로드가 첫 번째 다운로드와 동일하도록 하여 프로젝트가 의존하는 모듈에 예기치 않은 변경이 없는지 확인합니다.

go.mod와 go.sum 모두 버전 관리에 체크인해야 합니다.

일일 작업 흐름

일반적인 일일 작업 흐름은 다음과 같습니다. 필요에 따라 .go 코드에 import 문을 추가합니다.

go build 또는 go test와 같은 표준 명령은 필요에 따라 자동으로 새 종속성을 추가합니다( go.mod를 업데이트하고 다운로드합니다. 새로운 종속성)

특정 버전이 필요한 경우 go get을 사용하여 go get foo@v1.2.3, go get foo@master, go get foo@e3702bed2와 같은 특정 버전을 지정하거나 직접 편집할 수 있습니다. mod 파일

일반적으로 사용되는 명령:

go list -m all 프로젝트의 모든 직접 및 간접 종속성을 확인합니다.

go mod tidy 사용하지 않는 종속성을 지우고 다른 필수 종속성을 추가합니다.

go mod Vendor 종속성을 공급업체 디렉터리에 복사합니다.

더 많은 Go 언어 지식을 알고 싶다면 PHP 중국어 웹사이트

go 언어 튜토리얼

칼럼을 주목하세요.

위 내용은 Go 모듈 사용에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
go
원천:csdn.net
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿