golang을 사용하여 프로젝트를 개발한 이후로 golang 프로젝트 코드 종속성 문제가 나를 괴롭혔습니다. 주된 이유는 gopath의 사용법이 불분명하여 매우 혼란스러운 프로젝트로 이어지기 때문입니다. 최근에 갑자기 gopath의 아주 좋은 사용법이 생각났습니다. 주의 깊게 연구한 결과 실제로 가능합니다. 여기에 적어서 참고용으로 공유하겠습니다
Requirements
우선 원하는 프로젝트 구조입니다. 달성하려면 제3자 오픈 소스 라이브러리를 저장할 별도의 디렉토리가 있어야 하며, 그러면 내 자신의 여러 golang 프로젝트가 이러한 오픈 소스 라이브러리를 공유할 수 있습니다.
또한 프로젝트를 전환할 때마다 전역 gopath 디렉터리를 설정하고 싶지 않습니다.
구현 방법
mac 환경을 사용하고 있습니다. 다른 환경에서도 구성 방법은 비슷할 것 같습니다.
먼저 환경 변수에 설정해 주세요
vi ~/.bash_profile
내보내기 GOPATH= /work/go/gopath
여기에는 공유된 타사 오픈소스 라이브러리 저장 디렉터리만 설정됩니다. go get으로 설치한 타사 라이브러리는 여기에 저장됩니다.
프로젝트를 컴파일할 때 프로젝트와 디렉터리를 수동으로 추가하세요. GOPATH
echo $GOPATH
/work/go/gopath
export GOPATH=$GOPATH:/work/go/loolgame
echo $GOPATH
/work/go/gopath:/work/go 뒷면 /loolgame
프로젝트 디렉터리는 공유된 오픈 소스 디렉터리 뒤에 있어야 합니다
최종적으로 실행된 컴파일 명령
go install server
컴파일러에서 설정하는 방법
컴파일러 환경에서는 위와 동일한 목적을 다음과 같이 달성할 수 있습니다. 컴파일러에서 gopath 환경 설정
intelij IDEA
환경 구성
컴파일
go get golang.org/x/net 설치 실패 해결 방법
설치 명령: go get golang.org /x/net, 오류 메시지: 패키지 golang.org/x/net: 인식할 수 없는 가져오기 경로 " golang.org/x/net", 패키지 문서 주소: https://godoc.org/golang.org/....
이 문제는 주로 golang.org가 차단되어 액세스할 수 없기 때문에 발생합니다.
간단한 해결 방법은
https://github.com/golang/net에서 다운로드한 다음 디렉토리를 golang.org/x/net으로 변경하는 것입니다. . 그렇다면 모든 것이 괜찮습니다.
ps: git이 있으면 github.com/golang/net으로 직접 이동하세요. 그렇지 않으면 수동으로 다운로드하여 src 디렉터리에 넣을 수 있습니다.