>  기사  >  백엔드 개발  >  예, 없는 것보다는 낫습니다. Go 의존성 관리 도구 dep

예, 없는 것보다는 낫습니다. Go 의존성 관리 도구 dep

Go语言进阶学习
Go语言进阶学习앞으로
2023-07-21 13:13:461330검색
<br>

예, 없는 것보다는 낫습니다. Go 의존성 관리 도구 dep

“ 이 글을 읽는 데 3.4분 정도 걸린다”

Golang 초기에 많은 개발자들이 비판한 문제 중 하나는 종속 패키지 관리였습니다. Golang 1.5 릴리스 이전에는 여러 GOPATH를 설정해야만 이 문제를 해결할 수 있었습니다. 예를 들어 두 프로젝트 모두 Beego에 의존했지만 프로젝트 A는 에 의존했습니다. <span style="color: rgb(217, 72, 99);">Beego1.1<code style="font-size: 14px;"><span style="color: rgb(217, 72, 99);">Beego1.1</span>,B工程依赖的是<span style="color: rgb(217, 72, 99);">Beego1.7</span>,我必须设置两个GOPATH来区分,并且在切换工程的时候GOPATH也得切换,无比痛苦。终于终于在Golang 1.5 release 开始支持除了GOROOT和GOPATH之外的依赖查询,那就是<span style="color: rgb(217, 72, 99);">vender</span>于是很多大佬开始造轮子,造得比较好的应该是<span style="color: rgb(217, 72, 99);">dep</span><span style="color: rgb(217, 72, 99);">glide</span>

主角出场

    今天的主角是dep,Golang的官方依赖工具,用来管理和下载工程依赖的工具,以下是官方的介绍

dep is a prototype dependency management tool for Go. It requires Go 1.9 or newer to compile. dep is safe for production use.

安装

  • MacOS  <span style="color: rgb(217, 72, 99);">brew install dep</span>

  • Linux <span style="color: rgb(217, 72, 99);">curl https://raw.githubusercontent.com/golang/dep/master/install.sh | sh</span>

  • Windows   go get -u github.com/golang/dep/cmd/dep

    Windows得自己编译,并且确认把 $GOPATH/bin 添加到环境变量<span style="color: rgb(217, 72, 99);">$PATH</span>,

    B 프로젝트는 🎜🎜<span style="color: rgb(217, 72, 99);">Beego1.7🎜</span>🎜,🎜두 개의 GOPATH를 설정해서 구별해야 하고, 프로젝트 전환 시에도 GOPATH를 사용해야 합니다. 전환이 엄청나게 고통스럽습니다 . 마침내 Golang 1.5 릴리스에서는 GOROOT 및 GOPATH 이외의 종속성 쿼리, 즉🎜🎜<span style="color: rgb(217, 72, 99) ;">vender🎜</span>🎜,🎜많은 대기업이 바퀴를 만들기 시작했는데 더 나은 사람은 그래야 합니다🎜🎜<span style="color: rgb (217) , 72, 99);">dep🎜</span>🎜🎜 및 🎜🎜<span style="color: rgb(217, 72, 99) "> 활공🎜</span>🎜. 🎜

    주인공 등장

    🎜🎜 오늘의 주인공은🎜🎜dep 🎜🎜🎜, Golang의 공식 종속성 도구, 프로젝트 종속성을 관리하고 다운로드하는 데 사용되는 도구입니다. 다음은 공식 소개입니다🎜🎜
    🎜dep은 Go용 프로토타입 종속성 관리 도구입니다. 컴파일하려면 Go 1.9 이상이 필요합니다. dep는 프로덕션 용도로 사용하기에 안전합니다.🎜

    설치

    • 🎜🎜MacOS🎜 🎜 brew install dep🎜🎜🎜
    • 🎜🎜 Linux 🎜🎜<span style="color: rgb(217, 72, 99);">컬 https://raw.githubusercontent.com/golang/dep/master / install.sh | sh🎜</span>🎜🎜
    • 🎜🎜Windows🎜 🎜가서 -u github.com/golang/dep/cmd/dep🎜🎜🎜

      Windows 직접 컴파일하고 🎜$GOPATH/bin🎜🎜을 확인해야 합니다. 환경 변수🎜<span style="color: rgb(217, 72, 99);">$PATH🎜</span>🎜Down🎜

    Verify

    명령에 dep<span style="color: rgb(217, 72, 99);">dep</span>并回车,会出现以下提示的话,说明已经安装成功了。

    예, 없는 것보다는 낫습니다. Go 의존성 관리 도구 dep

    <br>

    功能介绍

    1.dep init<br>    备份当前的<span style="color: rgb(199, 37, 78);">vender</span>,创建<span style="color: rgb(61, 69, 76);">vender</span>目录并下载项目中的所有依赖包,生成<span style="color: rgb(199, 37, 78);">Gopkg.lock</span><span style="color: rgb(199, 37, 78);">Gopkg.toml</span>以下是两个文件的作用说明,简单讲<span style="color: rgb(199, 37, 78);">Gopkg.toml</span>是清单文件,Gopkg.lock是校验描述文件。尽量不要修改,避免造成两个文件不同步的错误。

    A manifest - a file describing the current project’s dependency requirements. In dep, this is the Gopkg.toml file.<br>A lock - a file containing a transitively-complete, reproducible description of the dependency graph. In dep, this is the Gopkg.lock file.

    예, 없는 것보다는 낫습니다. Go 의존성 관리 도구 dep

    <br>

    2.dep status

        用来查看项目依赖的详细信息和状态,非常清晰。 

    예, 없는 것보다는 낫습니다. Go 의존성 관리 도구 dep

    3.dep ensure<br>    尝试确保所有的依赖库都已经安装,如果没有即下载,相当于对依赖库做增量更新。

    <br>

    4.dep ensure add   github.com/RoaringBitmap/roaring@^1.0.1을 입력하세요. 줄을 입력하고 Enter를 누르면 설치가 성공했음을 나타내는 다음 프롬프트가 나타납니다.

    🎜🎜🎜🎜🎜

    예, 없는 것보다는 낫습니다. Go 의존성 관리 도구 dep🎜🎜🎜🎜<br>🎜🎜기능 소개🎜

    🎜1.dep init🎜🎜<br>🎜 현재 🎜🎜<span style="color: rgb(199, 37, 78);">vender🎜</span>🎜🎜, 🎜🎜vender🎜 생성 code >🎜 디렉토리를 선택하고 프로젝트의 모든 종속 패키지를 다운로드하고 🎜🎜<code style="font-size: 14px;"><span style="color: rgb(199, 37, 78);">Gopkg.lock을 생성합니다. 🎜 </span>🎜🎜 및 🎜🎜<span style="color: rgb(199, 37, 78);">Gopkg.toml🎜</span>🎜 🎜 다음은 두 파일의 기능에 대한 설명을 간략히 말하자면 🎜🎜<span style="color: rgb(199, 37, 78);">Gopkg .toml🎜 code>🎜🎜은 매니페스트 파일 🎜<span style="color: rgb(199, 37, 78);">🎜<code style="font-size: 14px;">Gopkg.lock입니다. 🎜🎜 🎜는 확인 설명 파일입니다. 두 파일이 동기화되지 않을 수 있는 오류를 방지하려면 수정하지 마십시오. 🎜🎜

    매니페스트 - 현재 프로젝트의 종속성 요구 사항을 설명하는 파일입니다. dep에서는 Gopkg.toml 파일입니다. <br>잠금 - 종속성 그래프에 대한 전이적으로 완전하고 재현 가능한 설명이 포함된 파일입니다. Dep에서는 Gopkg.lock 파일입니다.🎜

    🎜🎜🎜🎜예, 없는 것보다는 낫습니다. Go 의존성 관리 도구 dep🎜

    🎜 🎜🎜<br>🎜

    🎜2.dep 상태🎜🎜🎜

    🎜 사용 프로젝트 종속성의 자세한 정보와 상태를 보는 것은 매우 명확합니다. 🎜 🎜

    예, 없는 것보다는 낫습니다. Go 의존성 관리 도구 dep🎜

    🎜🎜🎜🎜

    🎜3.dep verify🎜🎜<br>🎜 모든 종속 라이브러리가 설치되었는지 확인하세요. 그렇지 않은 경우 다운로드하세요. 종속성을 확인하는 것과 동일합니다. 라이브러리는 점진적으로 업데이트됩니다. 🎜🎜

    🎜<br>🎜🎜🎜

    🎜4.dep github.com/RoaringBitmap/roaring@^1.0.1 추가를 확인하세요. 🎜🎜🎜

    새로운 종속 라이브러리를 다운로드 및 추가하고 매니페스트 파일과 확인 설명 파일을 점진적으로 업데이트하세요. github.com/RoaringBitmap/roaringgithub.com/RoaringBitmap/roaring 是依赖库的包名,1.0.1是库的版本号。

    本地缓存

    <span style="color: rgb(61, 69, 76);font-size: 16px;">    当然</span><span style="font-size: 16px;color: rgb(199, 37, 78);"><strong>dep</strong></span><span style="color: rgb(61, 69, 76);font-size: 16px;">不会每次都去下载,其工作原理和Mevan一样,会优先在本地仓库搜索,本地仓库未找到即在网络上下载,并添加到本地仓库。</span>

    $GOPATH/pkg/dep/sources

    은 종속 라이브러리의 패키지 이름입니다.

🎜🎜1.0.1🎜🎜🎜은 라이브러리의 버전 번호입니다. 🎜🎜

로컬 캐시

<span style="color: rgb(61, 69, 76 );font-size: 16px;"> 물론이죠🎜</span><span style="font-size: 16px;color: rgb(199, 37, 78 ) ;">🎜dep🎜🎜</span><span style="color: rgb(61, 69, 76);font-size: 16px;">아니요 매번 다운로드합니다. 작동 원리는 Mevan과 동일합니다. 로컬 창고를 먼저 검색합니다. 로컬 창고를 찾을 수 없으면 인터넷에서 다운로드하여 로컬 창고에 추가합니다. 🎜</span>🎜

$GOPATH/pkg/dep/sources🎜🎜🎜

위 내용은 예, 없는 것보다는 낫습니다. Go 의존성 관리 도구 dep의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 Go语言进阶学习에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제