Go.mod의 Go 모듈 종속성을 보고서의 최신 커밋으로 지정하는 방법은 무엇입니까?
v1.11 Go부터는 모듈에 대한 지원이 추가되었습니다.명령
go mod init <package name>
go build
생할성수 있니다 습다 ▁generate▁would니있go.mod
그리고.go.sum
패키지 종속성에 대해 발견된 모든 버전이 포함된 파일입니다.모듈에 릴리스가 없는 경우 해당 모듈의 최신 커밋이 사용됩니다.모듈에 릴리스가 있는 경우 최신 릴리스가 종속성으로 선택됩니다.
그러나 아직 공개되지 않은 릴리스가 아니라 해당 릴리스 이후에 수행된 커밋 기능이 필요할 때가 있습니다.설정방법법을 합니까?go.mod
모듈의 릴리스가 아니라 모듈의 저장소에 있는 특정 커밋을 가리킵니다.손으로 넣을 수 있을 것 같습니다.go.mod
와 함께
module /my/module
require (
...
github.com/someone/some_module v0.0.0-20181121201909-af044c0995fe
...
)
v0.0.0
릴리스 태그인 막으게릴시태리그일와않치습하니다지에 해당하지 .20181121201909
와 커밋타가될것이고가 .af044c0995fe
커밋 해시가 될까요?그러한 정보를 손으로 찾아서 입력해야 합니까, 아니면 더 나은 방법이 있습니까?
원하는 커밋 해시를 '가져오기'만 하면 됩니다.
go get github.com/someone/some_module@af044c0995fe
'go get'은 종속성 파일(go.mod, go.sum)을 올바르게 업데이트합니다.
더 많은 정보: https://github.com/golang/go/wiki/Modules#how-to-upgrade-and-downgrade-dependencies
추가로 에버턴의 사용에 대한 답변.go get github.com/someone/some_module@af044c0995fe
특정 커밋을 얻기 위해 다음과 같은 지점 이름을 사용할 수도 있습니다.
go get github.com/someone/some_module@master
go get github.com/someone/some_module@dev_branch
이러한 예제는 해당 분기에서 최신 커밋을 가져옵니다.
여전히 유사 버전으로 기록됩니다.go.mod
:v0.0.0-20171006230638-a6e239ea1c69
(이를 통해 표준 semver 순서를 기준으로 모든 버전에 걸쳐 간단한 토탈 오더를 제공할 수 있습니다.)
디렉토리에 대한 두을 동시에 ), 를 추가할 수 .replace
진술는에의 에 있는 go.mod
파일 이름:
module example.com/mypkg
go 1.15
require (
gitlab.com/someone/a_package v0.14.2
)
replace gitlab.com/someone/a_package => ../my_forks/a_package
저는 한동안 그것이 모두에게 어떻게 작용하는지에 대해 머리를 부딪쳤고 그것을 운영할 수 없습니다.저는 마스터 브랜치를 사용해야 했고, 그 후에야 마스터 브랜치를 사용할 수 있었습니다.
특정 지점, 커밋 ID 또는 태그로 작업하려면 아래 명령을 실행하여 플래그 for go 모듈을 활성화해야 합니다.
env -w GO111MODULE=로 이동합니다.
이 후에 우리는 할 수 있을 것입니다.
go get repo@branchname
go get repo@tag
go get repo@commithash
또한 go.mod 파일의 태그 대신에 최신 단어를 넣으면 모듈의 최신 태그로 변경됩니다.
예:
module /my/module
require (
...
github.com/someone/some_module latest
...
)
될 것입니다
module /my/module
require (
...
github.com/someone/some_module v2.0.39
...
)
달리기를 한 후에go mod tidy
- 분기에서 소스 다운로드
go get your-repo@branch-name
추가할 Go 모듈 버전이 포함된 출력 읽기require
또는replace
:
go: github.com/your-repo v1.2.3-0.20210609123456-123123 다운로드 - 나중에 이 버전을 다음 명령의 출력 문자열로 찾을 수 있습니다.
go list -m -json your-repo@branch-name | jq '.|"\(.Path) \(.Version)"'
- 한다면
jq
PC에 설치되어 있지 않습니다. 수동으로 결합합니다.Path
그리고.Version
결과 값:go list -m -json your-repo@branch-name
공백으로 구분:
귀하의 보관소 v1.2.3-0.20210609123456-123123
언급URL : https://stackoverflow.com/questions/53682247/how-to-point-go-module-dependency-in-go-mod-to-a-latest-commit-in-a-repo
'programing' 카테고리의 다른 글
SQL Server에 이미지를 저장하시겠습니까? (0) | 2023.06.30 |
---|---|
몽구스 및 날짜를 사용한 쿼리 (0) | 2023.06.30 |
문자열에 다른 문자열이 포함되어 있지 않은지 확인합니다. (0) | 2023.06.25 |
데이터베이스 데이터mongodb 단위의 크기 (0) | 2023.06.25 |
Vuex에서 계산된 속성을 사용하여 돌연변이가 등록되지 않음 (0) | 2023.06.25 |