2016-10-22 3 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検索を改良することは、一見無関係な質問の同じスタックを戻すだけです。

あなたの $GOPATH(外部LIBS)または $GOROOT(STD libに)内のすべてのインポートライブラリを持っている必要があり
+0

フレームワークを使用しない場合は、ゴーランと一緒に使用する必要はありません。https://www.nicolasmerouze.com/build-web-framework-golang/ https ://medium.com/code-zen/whyi-i-don-t-use-go-web-frameworks-1087e1facfa4#.5lmlr8k6r –

答えて

1

go getコマンドは、リモートからライブラリを取得し、あなたのであれば、あなたの$GOPATH

でそれらを置くことができますgo get github.com/labstack/echo URLからライブラリをフェッチし、ローカルに$GOPATH/github.com/labstack/echoに配置します。

ライブラリーgo-todo/modelsをリモートでフェッチすることはできません。そのため、コピーされ、ローカルで利用可能になるようにする必要があります。$GOPATH/go-todo/models

またはvendoringを試すことができます。

関連する問題