2014-05-18 4 views
2

everyone.구글에서 프로젝트, 도서관의 수입

저는 Go 언어에 익숙하지 않고 현재 Go 응용 프로그램을 빌드하는 기본 사항을 이해하려고합니다. 나는 다음 문제를 만났다.

예를 들어, 내 프로젝트에 다른 라이브러리를 사용하고 있습니다. 내 컴퓨터에 로컬로 가지고 있기 때문에 프로젝트가 정상적으로 작동합니다.

github에 코드를로드하고 다른 프로그래머가 코드를 다운로드 중입니다. 내가 아는 한,이 프로그래머는 내가 사용한 라이브러리가 없기 때문에, 내 코드는 작동하지 않을 것이다.

그래서 질문입니다. 내 프로젝트를 가지고있는 모든 라이브러리와 내 프로젝트를 공유하는 가장 좋은 방법은 무엇입니까? 별도의 리포지토리에이 라이브러리를 업로드해야합니까? 그런 다음 프로젝트를 사용하기 위해 사람들은 코드를 조사하여 하나씩 라이브러리를 검색하여 하나씩 다운로드해야합니다.

예를 들어, Java에는 필요한 모든 종속성을 다운로드하는 Maven 또는 Ant와 같은 것이 있습니다. Go와 같은 도구가 있습니까?

이의 내 프로젝트의 주요 파일을 호출하자 을 main.go 그리고 난 내 자신의 라이브러리를 사용하고 있습니다 :

다른 컴퓨터에서이 프로젝트 실행을 할 수있는 가장 좋은 방법은 무엇입니까 mathutil.go?

+0

Go에는 라이브러리가 없지만 패키지가 있습니까? 여기에서 물어보기 전에 http://golang.org에있는 정보 중 적어도 일부를 읽으십시오. – Volker

답변

3

Go의 종속성은 Maven 또는 IVY 전이 의존성을 사용하는 것과 매우 비슷합니다. 누군가 당신의 패키지를 "가져올"때 당신이 의존하는 것은 자동으로 다운로드됩니다. 소스의 예를 들어

:

import "github.com/foo/bar" 

이동이 자동으로 $의 GOPATH/SRC/github.com/foo는/당신의 코드와 함께 바로 그를 다운로드합니다.

사용하는 제 3 자 라이브러리가 공용 저장소 (예 : github)에 호스팅되어 있다고 가정하면 사람들은 아무 것도 할 필요가 없습니다.

사용한 라이브러리를 공용 저장소에서 사용할 수없는 경우 라이센스가 있다고 가정하고 어딘가에 게시해야합니다.

자세한 내용은 golang.org/doc/code.html을 참조하십시오.

+0

Go는 가져온 라이브러리를 자동으로 다운로드하지 않습니다. 작업 공간에 코드를'get get '하면 의존성이 자동으로 패치됩니다. 자신의 코드에 의존성을 가져와야한다면'get get/to/own/... '을 할 수 있습니다. – mbanzon

+1

@mbanzon은'got -u all'을하지 않겠습니까? – VonC

+1

감사합니다 mbanzon이 더 명확하게 업데이트되었습니다. 또한, 예, "go -u all"이 그렇게 할 것이라고 믿습니다. 그러나 원하지 않는 것들을 많이 할 수도 있습니다. (예 : 당신이 작업하고있는 것들을 스톰프하십시오.) –