go-mod
2980 단어 go
본문은 다른 사람의 문서를 읽고 쓴 필기다.go modules는 Golang 1.11에 새로 추가된 특성입니다.
modules 기능이 활성화되면 의존 패키지의 저장 위치가 $GOPATH/pkg으로 변경되며 같은 패키지의 여러 버전이 병존할 수 있고 여러 항목이 캐시된 모듈을 공유할 수 있습니다.
기능 및 node.js의 nodemodule는 유사합니다. 프로젝트는 자신이 필요로 하는 가방의 버전을 만들 수 있습니다.
어떻게 열어요
GO111MODULE 환경 변수를 조정하여 켜기 상태를 변경합니다.총 3개의 상태:off,on,auto(기본값)
export GO111MODULE=on
go 명령줄은 모듈 기능을 지원하지 않습니다. 의존 패키지를 찾는 방식은 이전 버전의 vendor 디렉터리나 GOPATH 모드를 통해 찾을 것입니다.
go 명령줄은 modules를 사용하고 GOPATH 디렉터리에서 찾을 수 없습니다.
기본값으로 go 명령줄은 현재 디렉터리에 따라module 기능을 사용할지 여부를 결정합니다.이 경우 현재 디렉터리는 GOPATH/src 이외에 있고 이 디렉터리는 go를 포함하는 두 가지 상황으로 나눌 수 있다.mod 파일 현재 파일이 go를 포함하고 있습니다.mod 파일의 디렉터리 아래에 있습니다.
go mod 명령
go mod
명령하다
설명
download
download modules to local cache(다운로드 종속 팩)
edit
edit go.mod from tools or scripts(go.mod 편집
graph
print module requirement graph (인쇄 모듈 의존도)
init
initialize new module in current directory (현재 디렉터리에서mod 초기화)
tidy
add missing and remove unused modules (부족한 모듈을 끌어서 사용하지 않는 모듈을 제거)
vendor
make vendored copy of dependencies (벤더에 의존 복사)
verify
verify dependencies have expected content (의존도가 정확한지 확인)
why
explain why packages or modules are needed(왜 의존해야 하는지 설명)
인스턴스
디렉터리를 만들고 이 디렉터리를 gomod로 초기화합니다
mkdir squid
cd squid
PS C:\main\code\squid> go mod init squid
go: creating new go.mod: module squid
그리고 메일을 쓰기 시작합니다.go 파일.
package main
import (
"github.com/sirupsen/logrus"
)
func main() {
logrus.Debug("hello world.")
}
실행go 실행 코드는 gomod가 자동으로 검색하고 자동 다운로드에 의존하는 것을 발견합니다: 다운로드github를 터치합니다.com/sirupsen/logrus 라이브러리;작업 디렉터리에서 go를 수정합니다.mod 파일
module squid
go 1.13
require (
github.com/sirupsen/logrus v1.4.2
)
go는 자동으로 go를 생성합니다.dependency tree를 기록하는 sum 파일:
go mod tidy
이 명령은 매우 유용하다. 우선 공식적인 설명을 살펴보자. tidy:add missing and remove unused modules 즉 너의 go.mod에 많이 도입하거나 적게 도입하는 go mod tidy를 사용하면 처리할 수 있습니다.
나는 goalng을 사용할 수 없다.org/x 가방 나 어떡해
예를 들어 당신의 현지 가방은 Golang을 도입해야 합니다.org/x/net/html가 봉인되었으니,github에 있는 거울 패키지를 사용할 수 있습니다. 예를 들어github입니다.com/golang/x/net/html
당신의 프로젝트에 go.mod에 Replace golang을 추가합니다.org/x/net/html => github.com/golang/x/net/html
replace 사용
로컬 라이브러리를 사용하려면 이 Replace 문법을 사용해야 합니다. 그렇지 않으면 gomod 방식으로 이런 오류가 발생할 수 있습니다.
build _/C_/main/code/squid/squid_svr/test/greeter: cannot find module for path _/C_/main/code/squid/squid_svr/test/greeter
mod 파일에 이런 문장을 추가하면 로컬 하위 디렉터리를 Replace greeter = >.../greeter로 사용할 수 있습니다. 이 프로젝트 아래에 있는 하위 디렉터리라면 모뎀 디렉터리를 모두 쓸 수 있습니다.
참조 링크
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Go Fiber 및 PlanetScale로 REST API 구축 - 4부다시 사용자 핸들러에 UpdateUser라는 새 함수를 추가합니다. 업데이트 사용자를 main.go에 등록 이제 응용 프로그램을 다시 실행하십시오. 이전에 생성한 사용자를 업데이트합니다. 응답 사용자가 존재하지 않을...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.