>백엔드 개발 >Golang >Go 모듈에 빌드 타임 명령 종속성(예: `github.com/aprice/embed/cmd/embed`)을 포함하는 방법은 무엇입니까?

Go 모듈에 빌드 타임 명령 종속성(예: `github.com/aprice/embed/cmd/embed`)을 포함하는 방법은 무엇입니까?

Linda Hamilton
Linda Hamilton원래의
2024-11-26 02:31:13364검색

How to Embed a Build-Time Command Dependency (e.g., `github.com/aprice/embed/cmd/embed`) in Go Modules?

Go 모듈에 명령 종속성 삽입

소개

Go 1.11에 도입된 Go 모듈은 Go에 대한 종속성 관리를 제공합니다. 프로젝트. 런타임 종속성 외에도 사용자는 빌드 프로세스 중에 특히 go 생성 명령 중에 실행되는 도구에 대해 go 모듈을 활용해야 할 수 있습니다.

질문

어떻게 통합할 수 있나요? github.com/aprice/embed/cmd/embed와 같은 특정 빌드 종속성을 지정하고 특정 디렉터리에서 실행하시겠습니까? 이 작업에 적합한 도구를 구하시겠습니까?

답변

다음 방법을 사용하면 Go 모듈에 명령 종속성을 삽입할 수 있습니다.

'도구' 만들기 패키지

  1. 프로젝트 내에 도구 디렉터리를 만듭니다.

    mkdir -p internal/tools
  2. 아래 표시된 대로 이 디렉터리 내에 도구 패키지를 배치합니다.
// internal/tools/tools.go
// +build tools

package tools

import (
    _ "github.com/UnnoTed/fileb0x"
)
  1. 빌드 태그는 파일을 컴파일해야 하는 시기를 지정합니다. 프로젝트 요구 사항에 맞게 사용자 정의할 수 있습니다.

go.mod 업데이트

  1. go mod tidy를 실행하여 go.mod 파일을 업데이트하고 포함합니다.
  2. 이 작업이 실패하면 go get, go generate 또는 go와 같은 추가 명령을 실행해 보세요. install.

판매

  1. go mod Vendor를 실행하여 go.mod에 나열된 모든 종속성에 대한 소스 코드를 다운로드합니다.
  2. -mod=vendor 플래그를 포함하도록 빌드 명령(예: go build, go generate)을 수정하세요. 이렇게 하면 프로젝트에서 공급업체의 종속성을 사용하게 됩니다.

추가 참고 사항

  • 프로그램이 가져올 수 있는 패키지가 아니라는 오류가 발생하는 경우 , 도구 패키지를 생성하고 거기에 종속성을 가져옵니다.
  • 모듈 캐시를 활용하고 종속성을 피하려면 벤더링이 중요합니다. 갈등.

위 내용은 Go 모듈에 빌드 타임 명령 종속성(예: `github.com/aprice/embed/cmd/embed`)을 포함하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.