Vendor | sabzil

October 14, 2016

vendor 관리

vendoring되어 있는 패키지를 관리해야 할 이유가 무엇인지에 대해서 찾아보다가 좋은 글을 발견했다. https://gocodecloud.com/blog/2016/03/29/go-vendoring-beginner-tutorial/ 이 글을 읽고 이해한 정도만을 요약 vendoring을 왜 하나? Project A에서 사용하는 Pkg X의 리비전 1을 사용하고 있다. 그런데 Project B에서는 Pkg X의 리비전 2를 사용하려 한다. 그런데 $GOPATH 안에는 같은 패키지를 하나만 갖고 있을 수 있다. Pkg X의 리비전을 Project A에 맞추면 Project B가 빌드를 실패하고, Project B에 맞추면 Project A가 빌드에 실패하게 된다. 그래서 패키지들을 vendor 아래에 위치 시킨다. ... Read more

March 9, 2016

vendor 사용 팁(내부 패키지)

프로젝트 내부에서 별도의 패키지를 만들어서 사용을 하려고 할때면, import 경로를 “github.com/blah/project/internalpkg” 처럼 다 써야 했었다. 이제 vendor를 사용하면 pkg 이름만 import 해서 사용할 수 있게 되었다. 샘플 프로젝트는 다음과 같다. https://github.com/sabzil/lotto 샘플 프로젝트에 대해서 약간의 설명을 더하면, 기존에는 command 패키지를 commands.go 에서 import 하기 위해서, import “github.com/sabzil/lotto/command” 와 같이 사용해야 했었다. 이렇게 되면 lotto 프로젝트를 다른 사람이 fork 해서 사용하려고 하면 일일이 import 경로를 변경해줘야 하는 문제가 생기게 된다. 그래서 go1. ... Read more

© sabzil 2016