Programming Language/golang
golang prviate repository에서 디펜던시 가져오는 방법
AndersonChoi
2023. 3. 6. 16:55
golang private repository를 하위 모듈로 가져올 때 그냥 import를 실행하고 나면 다음과 같은 이슈가 종종 발생하곤합니다.
$ go get github.com/AndersonChoi/my-private-repo
go: downloading github.com/AndersonChoi/my-private-repo v0.0.0-20230306053459-dec1333da9d3
go: github.com/AndersonChoi/my-private-repo@v0.0.0-20230306053459-dec1333da9d3: verifying module: github.com/AndersonChoi/my-private-repo@v0.0.0-20230306053459-dec1333da9d3: reading https://sum.golang.org/lookup/github.com/AndersonChoi/my-private-repo@v0.0.0-20230306053459-dec1333da9d3: 404 Not Found
server response: not found: github.com/AndersonChoi/my-private-repo@v0.0.0-20230306053459-dec1333da9d3: unrecognized import path "github.com/AndersonChoi/my-private-repo": https fetch: Get "https://github.com/AndersonChoi/my-private-repo?go-get=1": dial tcp 10.93.97.11:443: connect: connection refused
이런 경우에는 다음과 같이 명령어를 내리면 module로 디펜던시를 가져오게 됩니다.
$ GOPRIVATE="github.com" go get github.com/AndersonChoi/my-private-repo
go: downloading github.com/AndersonChoi/my-private-repo v0.0.0-20230306053459-dec1333da9d3
go: added github.com/AndersonChoi/my-private-repo v0.0.0-20230306053459-dec1333da9d3
문제는 다음에 다른 사람이 이렇게 추가한 서브모듈이 있는 레포지토리를 사용할때 다시 이 명령어를 사용하여 가져와야 한다는 점입니다.
이를 해결하기 위해서는 vendor를 사용하면됩니다.
$ go mod tidy 1 ↵
$ go mod vendor
이후에 vendor 디렉토리가 생긴 것을 확인할 수 있습니다.
$ ls
Dockerfile README.md go.mod go.sum src vendor
반응형