godeps 예제

go lang 2015. 4. 2. 01:05



https://github.com/ddliu/go-httpclient 를 이용한 go 샘플 예제로 godep를 사용해보았다. 



<설치>

1. godep 설치

설치된 godep은 $GOPATH/bin에 설치된다. 

2. path 추가
~/.bash_profile에 다음을 추가

export PATH=$PATH:$GOPATH:$GOPATH/bin
 

설정 reload
$ source ~/.bash_profile



3. 정상 실행 확인
$ godep

Godep is a tool for managing Go package dependencies.

Usage:

godep command [arguments]

The commands are:

save list and copy dependencies into Godeps
go run the go tool with saved dependencies
get download and install packages with specified dependencies
path print GOPATH for dependency code
restore check out listed dependency versions in GOPATH
update use different revision of selected packages

Use "godep help [command]" for more information about a command.




<테스트>

go의 httpclient 설치

$ go get github.com/ddliu/go-httpclient



$ cd src/github.com/knight76/godep


새로운 프로젝트에 github.com/knight76/godep 를 생성하고 main.go 작성한다. 

package main

import "github.com/ddliu/go-httpclient"

func main() {
httpclient.Defaults(httpclient.Map{
httpclient.OPT_USERAGENT: "googlebot",
"Accept-Language": "kr",
})

res, err := httpclient.Get("http://google.com/search", map[string]string{
"q": "news",
})

println(res.StatusCode, err)
}



godep 디렉토리에 Godeps 이 추가되지 않는다면, bin/godep 삭제하고 src/github.com/tools/godep도 삭제한다. 다시 go get github.com/tools/godep 을 입력해서 다시 다운로드한다.


$ godep save 하면 아래와 같이 Godeps/Godeps.json 파일이 생성된다. godep save의 내용은 dependency를 생성한다.

$ cat Godeps.json
{
"ImportPath": "github.com/knight76/godep",
"GoVersion": "go1.4.2",
"Deps": [
{
"ImportPath": "github.com/ddliu/go-httpclient",
"Comment": "v0.5.0-1-gc94e588",
"Rev": "c94e588d6261421924e2fd042ffba9cf7054f62a"
}
]
}



참고로 type godep는 다음과 같다.
type Godeps struct {
    ImportPath string
    GoVersion  string   // Abridged output of 'go version'.
    Packages   []string // Arguments to godep save, if any.
    Deps       []struct {
        ImportPath string
        Comment    string // Description of commit, if present.
        Rev        string // VCS-specific commit ID.
    }
}




dependency lib가 새로 변경되면, 다음을 실행한다.


$ go get -u github.com/ddliu/go-httpclient




실행 파일을 생성하기 위해서는 godep go build를 생성한다.

$ godep go build
$ ls  godep
godep
$ ./godep
(실행결과)


저장된 depencenty lib를 이용해서 빌드하기 위해서는 godep go install을 실행한다.

$ godep go install





참고내용
https://gowalker.org/github.com/tools/godep
https://flynn.io/docs/how-to-deploy-go
https://github.com/tools/godep
http://blog.gopheracademy.com/advent-2014/deps/




Posted by '김용환'
,