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
반응형
'Programming Language > golang' 카테고리의 다른 글
json value가 null일때 golang은 Unmarshal을 잘 할 수 있을까? (0) | 2024.01.18 |
---|---|
map[string]interface 데이터를 avro 포맷으로 파일 저장하는 방법 (0) | 2023.11.28 |
golang struct type을 JSON으로 Print 하기 (0) | 2023.03.29 |
goroutine 함수 여러번 실행 결과값 기다리는 2가지 방법 - js callback 처럼 (1) | 2023.03.03 |
go gin framework graceful shutdown 예제 (0) | 2023.03.03 |
intellij에서 golang 프로젝트 인식이 잘 안될때 (0) | 2023.02.22 |