Go 다른 프로젝트 패키지 import

2020. 7. 7. 09:00Challenge/Go

728x90

 

Go에서 Private나 Public에 관계없이 github 저장소에 업로드하지 않고, 로컬에 다중 프로젝트가 존재할때 

해당 프로젝트의 특정 모듈을 사용하고 싶을 경우에 다소 불편한점이 있습니다.

 

 

module github.com/<name>/<repository>

require (
    github.com/... <version>
    github.com/yankeetube/gin-jwt-middleware <version>
)

go의 경우 go mod init으로 생성 했을때 위 와 같은 go.mod 파일이 생기며, 의존성을 require를 통해 관리 됩니다.

 

 

하지만 local 프로젝트의 경우는 github에서 받아올 수 있는 상황이 아니기 때문에, replace 명령을 이용해야 합니다.

 

module github.com/<name>/<repository>

require (
    github.com/... <version>
    github.com/yankeetube/gin-jwt-middleware latest
)

replace github.com/yankeetube/gin-jwt-middleware latest => ./../gin-jwt-middleware

. 으로 시작하여 상대경로로 매칭시킵니다.

이렇게 replace를 적용하면 import할 때 github.com/yankeetube/gin-jwt-middleware 라고 입력하여도,

go.mod에 명시된 상대경로를 기준으로 패키지를 불러옵니다.

 

 

 

 

더 자세한 내용을 보고 싶으시다면

https://blog.burt.pe.kr/posts/local-package-with-go-module/

 

Go 로컬 패지키 모듈

Go modules를 사용하면 $GOPATH를 신경쓰지 않고 Go 프로젝트를 시작할 수 있습니다. 이미 오픈되어 있는 Go모듈을 사용할 경우에는 아래처럼 go.mod파일에 패키지의 주소와 버전을 기입하면 패키지를 �

blog.burt.pe.kr

 

728x90