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 중국어 웹사이트의 기타 관련 기사를 참조하세요!