2016-10-22 5 views
1

저는 새로 나왔습니다. 이전에 Go 배포를 사용 해본 사람이라면 누구나 분명한 상황이라고 생각합니다. 대부분의 TL; DR 감각에서 나는 Go (https://scotch.io/tutorials/create-a-single-page-app-with-go-echo-and-vue)를 사용하여 간단한 todo 목록을위한 Scotch.IO의 데모 프로젝트를 만들었고 내 컴퓨터에서 완벽하게 작동하지만 로컬 정의 된 패키지를 가져 오려고하면 CircleCI에서 중단됩니다 :로컬 패키지를 사용하는 배포 빌드가 "가져 오기 경로가 호스트 이름으로 시작하지 않습니다"라는 메시지와 함께 실패합니다.

import (
    "database/sql" 
    "net/http" 
    "strconv" 

    "go-todo/models" // <- This 

    "github.com/labstack/echo" 
) 

나는이 같은 응용 프로그램을 배포 할 진짜 이유가 없습니다 알지만, 배포가 필수적이다 어디 큰 프로젝트로 다이빙을하기 전에 더 잘 이해하고 싶습니다.

package go-todo/handlers: unrecognized import path "go-todo/handlers" (import path does not begin with hostname) 
package go-todo/models: unrecognized import path "go-todo/models" (import path does not begin with hostname) 

을 그리고 경로가 원격 환경의 관점에서 불완전 것을 파악하면서, 또한 상대 경로가 해결되지 않습니다 것을 알고, 내가 어떤 환경 변수가 있는지 알아봐야 할 것 : 브레이크 포인트에서 로그 읽기 나의 무지가이 맥락에서 나는 눈이 멀게하고있다.

go get 원격 패키지 호출이 모두 예상대로 제대로 작동한다는 점도 유의해야합니다.

도움이 될 것입니다. 내 Google 검색을 정제하면 겉으로보기에는 관련이없는 질문과 동일한 스택을 가져 오는 것입니다.

+0

프레임 워크를 사용하지 않을 기회가 생기면 Goolang과 함께 사용할 필요가 없습니다. https://www.nicolasmerouze.com/build-web-framework-golang/ https : //medium.com/code-zen/why-i-don-t-use-go-web-frameworks-1087e1facfa4#.5lmlr8k6r –

답변

1

당신은 모든 수입 당신의 $GOPATH (외부 libs와)의 라이브러리 나 $GOROOT (표준 lib 디렉토리)

원격에서 라이브러리를 가져올하고 $GOPATH

그래서 만약 go get github.com/labstack/echo에 넣을 수있는 go get 명령이 필요합니다 URL에서 라이브러리를 가져 와서 로컬에 $GOPATH/github.com/labstack/echo에 넣습니다.

라이브러리 go-todo/models은 원격으로 가져올 수 없으므로, 복사하여 현지에서 $GOPATH/go-todo/models으로 사용할 수 있도록 CI에서 확인해야합니다.

또는 vendoring을 사용해보십시오.