go-mod

2980 단어 go
문서 목록
  • 개요
  • 어떻게 켜는지
  • go mod 명령
  • 인스턴스
  • go mod tidy
  • 저는 goalng을 사용할 수 없습니다.org/x 가방 어떡해
  • replace
  • 사용
  • 참조 링크
  • 개술
    본문은 다른 사람의 문서를 읽고 쓴 필기다.go modules는 Golang 1.11에 새로 추가된 특성입니다.
    modules 기능이 활성화되면 의존 패키지의 저장 위치가 $GOPATH/pkg으로 변경되며 같은 패키지의 여러 버전이 병존할 수 있고 여러 항목이 캐시된 모듈을 공유할 수 있습니다.
    기능 및 node.js의 nodemodule는 유사합니다. 프로젝트는 자신이 필요로 하는 가방의 버전을 만들 수 있습니다.
    어떻게 열어요
    GO111MODULE 환경 변수를 조정하여 켜기 상태를 변경합니다.총 3개의 상태:off,on,auto(기본값)
    export GO111MODULE=on
    
  • off

  • go 명령줄은 모듈 기능을 지원하지 않습니다. 의존 패키지를 찾는 방식은 이전 버전의 vendor 디렉터리나 GOPATH 모드를 통해 찾을 것입니다.
  • on

  • go 명령줄은 modules를 사용하고 GOPATH 디렉터리에서 찾을 수 없습니다.
  • auto

  • 기본값으로 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로 사용할 수 있습니다. 이 프로젝트 아래에 있는 하위 디렉터리라면 모뎀 디렉터리를 모두 쓸 수 있습니다.
    참조 링크
  • go mod 공식 문서
  • go mod 사용
  • go mod의 상세 설명
  • 좋은 웹페이지 즐겨찾기