늦었지만 dep 졸업 후 gomodule 데뷔
개요
go1.11부터 사용할 수 있는 gomodule를 사용해 보세요.
나는 GO111 MODULE=on이면 좋겠다고 생각했거나 거짓말이라고 생각해서 검증을 해봤다.
환경 확인
환경
항목
컨텐트
호스트
OS
mac
호스트
go version
go1.11.2 darwin/amd64
객석
OS
ubuntu
객석
go version
go1.11.3 linux/amd64
호스트는 자신의 Mac입니다.
게스트는 Docker에 ubuntu를 추가하고 새로운 go 환경을 추가했습니다.
호스트에 이미 다양한 패키지가 있기 때문에 내빈 측에서 호스트 측에서 쓴 코드를 실행할 때 gomodule의 동작을 확인해야 합니다.
사용할 코드
호스트에서 프로그램 실행
준비
호스트 측에 이미 사용된 외부 포장의 상태가 비교적 설명하기 쉽기 때문에 제가 평소에 자주 보살핌을 받는 pp에 가입해 주십시오.
$ go get github.com/k0kubun/pp
$ git clone https://github.com/bookun/module-test
$ cd module-test
$ cat main.go
main.gopackage main
import "github.com/k0kubun/pp"
type person struct {
name string
age int
}
func main() {
p := person{name: "bookun", age: 5}
pp.Println(p)
}
실행
$ go run main.go
# 出力
main.person{
name: "bookun",
age: 5,
}
색깔이 있어서 보기 쉬워요.게스트에서 프로그램 실행
준비
$ cd module-test
$ make build
これで ゲスト側のプロンプト(#)が返ってくるはず
# git clone https://github.com/bookun/module-test
# cd module-test
실행
정상적으로 작동하면 pp가 없는 것처럼 오류가 발생할 수 있습니다
# go run main.go
出力
main.go:3:8: cannot find package "github.com/k0kubun/pp" in any of:
/usr/local/go/src/github.com/k0kubun/pp (from $GOROOT)
/root/go/src/github.com/k0kubun/pp (from $GOPATH)
예상대로GO111MODULE
$ GO111MODULE=on go run main.go
go: creating new go.mod: module github.com/bookun/module-test
go: finding github.com/k0kubun/pp v2.3.0+incompatible
go: downloading github.com/k0kubun/pp v2.3.0+incompatible
go: finding github.com/mattn/go-colorable v0.0.9
go: downloading github.com/mattn/go-colorable v0.0.9
go: finding github.com/mattn/go-isatty v0.0.4
go: downloading github.com/mattn/go-isatty v0.0.4
main.person{
name: "bookun",
age: 5,
}
대단해, 대단해!!!저희가 끝난 목록을 보여드릴게요.
$ ls
Dockerfile Makefile go.mod go.sum main.go
go.mod
및 go.sum
증가.한번 봅시다.
go.mod
module github.com/bookun/module-test
require (
github.com/k0kubun/pp v2.3.0+incompatible // indirect
github.com/mattn/go-colorable v0.0.9 // indirect
github.com/mattn/go-isatty v0.0.4 // indirect
)
pp와 가방에 의존하는 정보가 기재된 것 같습니다.보조 소프트웨어 패키지 추가 시도
아무거나 가능하지만 손님 쪽에서 진행합니다.
더해보세요echo.
# export GO111MODULE=on
# go get github.com/labstack/echo
go: finding github.com/labstack/echo v3.3.5+incompatible
go: downloading github.com/labstack/echo v3.3.5+incompatible
go: finding github.com/labstack/gommon/color latest
go: finding github.com/labstack/gommon/log latest
go: finding golang.org/x/crypto/acme/autocert latest
go: finding github.com/labstack/gommon v0.2.8
go: downloading github.com/labstack/gommon v0.2.8
go: finding golang.org/x/crypto/acme latest
go: finding golang.org/x/crypto latest
go: downloading golang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9
go: finding github.com/valyala/fasttemplate latest
go: downloading github.com/valyala/fasttemplate v0.0.0-20170224212429-dcecefd839c4
go: finding github.com/valyala/bytebufferpool v1.0.0
go: downloading github.com/valyala/bytebufferpool v1.0.0
대단해, 대단해!!!다시mod 봐봐.
go.mod
module github.com/bookun/module-test
require (
github.com/k0kubun/pp v2.3.0+incompatible // indirect
github.com/labstack/echo v3.3.5+incompatible // indirect
github.com/labstack/gommon v0.2.8 // indirect
github.com/mattn/go-colorable v0.0.9 // indirect
github.com/mattn/go-isatty v0.0.4 // indirect
github.com/valyala/bytebufferpool v1.0.0 // indirect
github.com/valyala/fasttemplate v0.0.0-20170224212429-dcecefd839c4 // indirect
golang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9 // indirect
)
완전히 의존하는 가방 추가총결산
go1.11 이상 GO111 MODULE=on이면
뒷수습
컨테이너 삭제 및 이미지 삭제
$ make rm
$ make rmi
Reference
이 문제에 관하여(늦었지만 dep 졸업 후 gomodule 데뷔), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/oliva/items/351d5a4b239bad0bc82d텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)