2017-04-25 6 views
2

以前は別のケースでインポートパスがあったGoLangのサードパーティライブラリを使用しています。最初は手紙が小文字で、作者が大文字に変更しました。大文字と小文字を区別するインポートの衝突を処理する方法

プラグインの作者によってはライブラリが更新されたものもあれば、そうでないものもあります。その間、元のライブラリの著者はケースの変更を元に戻しました。

今は、大文字と小文字のインポートの衝突によってアプリケーションが構築されない状態になっています。

これを修正するにはどうすればよいですか?

感謝

+0

現在の状態に合わせてソースファイルを編集しますか?それが私がいつもしてきたことです。より良い答えがあるかどうかを知りたい。 – Flimzy

答えて

4

あなたは依存関係、ベンダー、そしてvendor/ディレクトリに移動して、を手動(依存するgrep INGやsedを試してみてください)、依存関係を変更することができます。 vendoringの概要について

、ここにしようと、https://blog.gopheracademy.com/advent-2015/vendor-folder/

コンパイラは最初になりますここで、オリジナルのレポはまだあなたのGOPATHに住むことができますが、「修正」バージョンは、ベンダーのフォルダに行くことができます依存関係をリンクするとき

はmkoprivaは、あなたがリファクタリングインポート名gofmtツールを使用してすることができますコメントで言及したよう私はgovendor

編集

使用し、vendoringのための多くのツールがありますgofmt -w -r '"path/to/PackageName" -> "path/to/packagename"' ./

gofmt -w -r 'PackageName.x -> packagename.x' ./

小文字単一文字のIDは、ワイルドカードです。

ドキュメント

から-rフラグで指定された書き換えルールは、次の形式の文字列でなければなりません:

pattern -> replacement

両方のパターンとの交換が有効な移動式でなければなりません。このパターンでは、1文字の小文字の識別子は、任意の部分式に一致するワイルドカードとして機能します。それらの表現は、置き換え中の同じ識別子に置き換えられます。

+2

'grep'の代わりに[gofmtツール](https://golang.org/cmd/gofmt/)を使うこともできます。例えば。 'go/path/to/packageName '' /'を変更し、そのパッケージの*セレクタ式*を変更する場合は、 'gofmt -w -r 'PackageName .x - > packagename.x '。/ ' – mkopriva

関連する問題