"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > 최상위 `cmd` 폴더 없이 여러 Go 패키지 바이너리를 동시에 빌드하는 방법은 무엇입니까?

최상위 `cmd` 폴더 없이 여러 Go 패키지 바이너리를 동시에 빌드하는 방법은 무엇입니까?

2024년 11월 11일에 게시됨
검색:935

How to Build Multiple Go Package Binaries Simultaneously Without a Top-Level `cmd` Folder?

여러 Go 패키지 바이너리를 동시에 빌드하기

질문은 최상위 수준 사용에 대한 기본 조언으로 여러 패키지 바이너리를 동시에 빌드하는 것에 관한 것입니다. cmd 폴더가 작동하지 않는 것 같습니다. 제공된 코드 예제는 특정 바이너리를 올바르게 빌드할 수 있는 특정 폴더 구조를 보여줍니다.

go build 명령을 사용하여 한 단계로 모든 바이너리를 빌드하려면 다음 변형이 권장됩니다.

cd $GOPATH/someProject
for CMD in `ls src/cmd`; do
  go build ./src/cmd/"$CMD"
done

이 명령은 src/cmd 디렉터리의 패키지를 반복하고 각 패키지를 개별적으로 빌드합니다. 결과 바이너리는 해당 패키지 디렉터리에 저장됩니다.

또는 바이너리를 $GOPATH/bin에 설치하지 않으려는 경우 스크립트를 사용할 수 있습니다. 이는 빌드 스크립트가 여러 바이너리 생성을 처리하는 오픈 소스 프로젝트에서 일반적인 관행입니다.

다음 예제 스크립트를 사용할 수 있습니다.

cd $GOPATH/someProject
for CMD in `ls cmd`; do
  go build ./cmd/$CMD
done

이 스크립트는 cmd 디렉터리의 패키지를 반복하고 각 패키지에 대해 go build를 실행합니다. 결과는 각각의 cmd 패키지 디렉터리에 저장된 바이너리 세트입니다.

자세한 내용은 다음 인기 프로젝트에서 빌드 스크립트의 예를 제공합니다.

  • Grafana: https:// github.com/grafana/grafana/blob/master/build.go
  • 토러스: https://github.com/coreos/torus/blob/master/Makefile
  • 캐디: https://github.com/mholt/caddy/blob/master/dist/automate.go
최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3