> 백엔드 개발 > Golang > 단일 디렉터리에 여러 Go 패키지가 공존할 수 있나요?

단일 디렉터리에 여러 Go 패키지가 공존할 수 있나요?

Mary-Kate Olsen
풀어 주다: 2024-12-03 18:56:11
원래의
293명이 탐색했습니다.

Can Multiple Go Packages Coexist in a Single Directory?

동일한 디렉터리에서 여러 패키지 처리

질문:

유지 관리가 가능한가요? 하나의 패키지에 두 개의 패키지 디렉터리?

배경:

프로젝트가 라이브러리와 명령줄 인터페이스(CLI)를 모두 포함하는 시나리오에서 다음과 같은 질문이 발생합니다. 동일한 디렉터리 내에서 별도의 패키지로 구성합니다. 패키지 main 및 func main 선언은 CLI 실행에 필수적이지만 라이브러리에 필요한 패키지 myproject 선언과 충돌하기 때문에 프로젝트 컴파일 시 충돌 가능성이 우려됩니다.

답변:

이 문제를 해결하려면 기본 디렉터리 내에 새 하위 폴더를 만들고 라이브러리나 CLI를 새 폴더로 이동하는 것이 좋습니다. 이렇게 하면 두 패키지 간의 격리가 보장되고 이름 충돌이 방지됩니다.

해결책:

  1. 기본 프로젝트 내에 lib 또는 bin과 같은 새 폴더를 만듭니다. 디렉터리.
  2. 라이브러리(myproject.go) 또는 CLI(main.go)를 새 디렉터리로 이동합니다. 폴더.
  3. 올바른 $GOPATH 참조를 사용하여 이동한 패키지를 다른 패키지로 가져왔는지 확인하세요.

예:

고려하세요. 다음 예제 구조:

whatever.io/
    myproject/
        main.go
        lib/
            myproject.go
로그인 후 복사

이 경우 myproject 라이브러리가 다음으로 이동되었습니다. lib 하위 폴더. 이제 main.go 파일은 다음을 사용하여 라이브러리를 가져올 수 있습니다.

import "../lib/myproject"
로그인 후 복사

이 접근 방식은 컴파일 충돌을 해결하면서 프로젝트 구성을 보존합니다.

추가 리소스:

  • [빌드하기 vs 빌드하기 file.go](https://stackoverflow.com/questions/29096547/go-build-vs-go-build-file-go)

위 내용은 단일 디렉터리에 여러 Go 패키지가 공존할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿