golang 패키지가 얼마나 활발하게 성장하고 향상되는지 살펴보면 패키지 버전의 문제가 어떻게 해결되는지 궁금합니다.
한 가지 방법은 타사 패키지를 프로젝트 폴더에 저장하는 것입니다.
하지만 함께 설치하면 go get
어떻게 되나요?
답변
go get
에 나열된 첫 번째 디렉토리 GOPATH
(콜론으로 구분 된 디렉토리 목록을 포함 할 수있는 환경 변수)에 패키지를 설치합니다 . go get -u
기존 패키지를 업데이트하는 데 사용할 수 있습니다 .
당신은 또한 당신의 go get -u all
모든 패키지를 업데이트 하는 데 사용할 수 있습니다GOPATH
더 큰 프로젝트의 경우 프로젝트 A에서 라이브러리를 업데이트해도 프로젝트 B에서 문제가 발생하지 않도록 각 프로젝트마다 다른 GOPATH를 작성하는 것이 합리적 일 수 있습니다.
환경 변수 go help gopath
에 대한 자세한 내용을 보려면 입력 GOPATH
하십시오.
답변
@tux 대답은 중대하다, 당신이 사용할 수있는 추가하고 싶었 가서 특정 패키지를 업데이트 :
go get -u full_package_name
답변
질문 에 타사 라이브러리가 언급 되었지만 모든 패키지는 언급 되지 않았으므로 와일드 카드를 사용하는 것이 좋습니다.
유스 케이스 : Github VCS에서 얻은 모든 패키지를 업데이트하고 싶다면 다음과 같이 말하십시오.
go get -u github.com/... // ('...' being the wildcard).
이것은 현재의 github 패키지 만 업데이트합니다. $GOPATH
VCS 내에서도 동일하게 적용됩니다. ogranizaiton A의 저장소에서 모든 패키지를 업그레이드하려는 경우에만 의존합니다.
go get -u github.com/orgA/...
답변
위의 답변에는 다음과 같은 문제가 있습니다.
- 커밋되지 않은 변경 사항이있는 경우 앱을 포함한 모든 것을 업데이트합니다.
- 프로젝트에서 이미 제거했지만 디스크에 이미있는 패키지를 업데이트했습니다.
이를 피하려면 다음을 수행하십시오.
- 업데이트하려는 타사 폴더를 삭제하십시오.
- 앱 폴더로 이동하여 실행
go get -d
답변
1.13으로 가다
(모듈 루트 디렉토리에서 실행)
지정된 종속성을 업데이트하십시오.
go get -u <package-name>
모든 직접 및 간접 종속성을 최신 마이너 또는 패치 업그레이드로 업데이트하십시오 (시험판은 무시 됨).
go get -u ./...
# or
go get -u=patch ./...
참고:
https://github.com/golang/go/wiki/Modules#daily-workflow
go help get
답변
버전을 지정하거나 커밋하려면
go get -u otherpackage@1.2.3
go get -u otherpackage@git-sha
https://github.com/golang/go/wiki/Modules#daily-workflow를 참조 하십시오
답변
경로로 이동하여 입력
go get -u ./..
모든 필수 패키지를 업데이트합니다.