2016-08-02 13 views
7

Jestem bardzo nowy w Golang. Widzę, że w Golang można importować pakiety bezpośrednio z Github jak:Golang, importowanie pakietów z Github prosi mnie o zapamiętanie adresu Github?

import "github.com/MakeNowJust/heredoc" 

Czy to znaczy, muszę zapamiętać ten adres, aby wykorzystać ten pakiet? IMHO to nie jest fajne. Co jeśli autor paczki usunął go lub zmienił adres URL? Jakieś pomysły?

+4

Ten sam problem występuje w innych językach, jeśli autor pakietu usuwa jego pakiet. Możesz użyć narzędzi takich jak [glide] (https://github.com/Masterminds/glide) do pobrania i usunięcia vcs pakietu dostawcy, aby przesłać pliki pakietów do własnego repozytorium. – huygn

+0

Zobacz także [wpis wiki o zarządzaniu pakietami dla Go] (https://github.com/golang/go/wiki/PackageManagementTools). Inne narzędzia, które są obecnie w hype są (w szczególnej kolejności): 'godep',' govendor' i 'gb'. – kostix

+0

To właściwie interesujące pytanie. Być może nie jest sformułowane idealnie, ale jest bardzo podobne do całej dyskusji o sprzedaży i zarządzaniu zależnościami. – serverhorror

Odpowiedz

18

Polecam przeczytać dokumentację How to Write Go Code i blog .

Ścieżka, którą widzisz w linii importu, nie jest adresem URL, ale tylko ścieżką, w której znajduje się pakiet (zwykle w stosunku do $GOROOT/src/pkg lub $GOPATH/src). Twój pakiet heredoc znajduje się najprawdopodobniej w katalogu $GOPATH/src/github.com/MakeNowJust/heredoc.

Zalecanym sposobem korzystania z pakietów zewnętrznych jest pobranie i zainstalowanie ich za pomocą go get. Możesz zajrzeć do dokumentacji get go by go get --help.

+0

To zasadniczo mówi: "Nie, nie możesz importować pakietów bezpośrednio z Github w Go.To samouczek, który właśnie tak brzmi". Poprawny? – DailyFrankPeter

+0

Tak, musisz pobrać pakiet, aby móc z niego korzystać. – tsabsch

1

Nie martw się, człowieku! możesz użyć narzędzia glide do zarządzania pakietami.