最初から移動します-パッケージとモジュールの操作
13989 ワード
モジュールの移動
モジュールには2つの興味深いユースケースがあります.
モジュールを消費すると、OOFコアモジュールと外部サードパーティモジュール
モジュールを作成する場合、いくつかのケースで、あなたまたは他の誰かが使用できるコードを作成します.このシナリオでは、モジュールを作成し、Githubにアップロードできます.
内部ファイルを消費する
あなたは多くの異なるファイルであなたのアプリケーションを分割することがあります.以下のファイルを持っています
/app
main.go
/helper
helper.go
モジュールを作成します.
go mod init
ヘルパーディレクトリとヘルパーを作成します.ファイルに移動し、次の内容を指定します
// helper.go
package helper
import "fmt"
func Help() {
fmt.Println("This is a helper function")
}
package main
import (
"log-tester/helper"
"github.com/softchris/logger"
)
func main() {
logger.Log("hey there")
helper.Help()
}
"log-tester/helper"
に注意してください、それはhelper
パッケージが範囲にあることを確実とします. go run main.go
外部モジュールを消費する
外部モジュールを消費するには、
インポートは、これは
import
命令を使用して完全にモジュールの場所にアドレスを修飾することが含まれます.コードで使用すると、
それがダウンロードされることを確実にするので、あなたのコードは走らせることができます.
プロジェクトの作成
新しいプロジェクトを作ろう
ラン
go mod init
:go mod init hello
どう行くか.modは以下の内容で作成されました.module hello
go 1.16
外部libへの参照を追加する
次に、外部ライブラリを使用するコードを作成します.
ファイルを作成します.試み
package main
import (
"fmt"
"github.com/softchris/math"
)
同じファイルに、
main()
関数を追加し、パッケージから外部関数を使用します.func main() {
sum += math.Add(1,2)
fmt.Println(sum)
}
リブを取得する
さて、外部ライブラリを解決する必要があります.
ラン
go mod tidy
:go mod tidy
どうぞ.modが更新されましたrequire github.com/softchris/math v0.2.0
また行きます.sum file以下の内容を指定します.github.com/softchris/math v0.2.0 h1:88L6PLRBGygS3LY5KGIJhyw9IZturmd2ksU+p13OPa4=
github.com/softchris/math v0.2.0/go.mod h1:v8WzhjKC+ipuH+i9IZ0Ta2IArniTP53gc5TgCINCqAo=
これは、GOモジュールに参照することによって、アプリケーションを構築する方法を追跡する試みの方法です.go run
go run main.go
3
モジュールを作る
共有するためのモジュールをビルドすると、いくつかのgotchasがあります.
モジュールのコードを作成する
より広い使用を意味するMoodleを作成するには、まずモジュールを初期化する必要があります.
mkdir logger
cd logger
go mod init <address at github>
を実行します. go mod init github.com/softchris/logger
これは、GOを作成します.あなたのディレクトリのmodファイル. logger/
go.mod
ファイルは以下のようになります: module github.com/softchris/logger
go 1.16
パッケージ名とgoのバージョンが含まれます. package logger
import (
"fmt"
)
var Version string = "1.0"
func Log(mess string) {
fmt.Println("[LOG] " + mess)
}
package logger
号の代わりにmain
号である.ローカルテスト
パッケージをローカルでテストできます.そのためには、パッケージをインポートできる別のパッケージが必要です.
cd ..
mkdir logger-test
cd logger-test
go mod init logger-test
package main
import "github.com/softchris/logger"
func main() {
logger.Log("hey there")
}
この時点で、あなたは“Logger”パッケージを消費していますが、Githubを指しており、パッケージはまだそこに住んでいません.しかし、あなたのマシンのローカルアドレスを再指定できます. require github.com/softchris/logger v0.0.0
replace github.com/softchris/logger => ../logger
つのことがここで起こっています.「ロガー」パッケージを求めています.
require github.com/softchris/logger v0.0.0
あなたはgithubの代わりにあなたのローカルシステムを指すようにしています
replace github.com/softchris/logger => ../logger
パッケージを
go run
で実行します.go run main.go
次のようになります.[LOG] hey there
パッケージを発行する
パッケージを公開するには、Githubに置いてください.
git init
で作成します. git init
少なくとも1つのコミットを行います.
git add .
git commit -m "first commit"
git remote add origin https://github.com/softchris/logger.git
git branch -M main
git push -u origin main
git tag
を入力します. git tag v0.1.0
git push origin v0.1.0
今すぐあなたのパッケージは、タグ0.1.0を持ってテストする
cd ..
cd logger-test
require github.com/softchris/logger v0.1.0
replace github.com/softchris/logger => ../logger
go mod tidy
を実行します、これはパッケージを探すために行きます: require github.com/softchris/logger v0.1.0
また、あなたの行く.SUMは以下のように設定します: github.com/softchris/logger v0.1.0 h1:Kqw7t9C3Y7BtHDLTx/KXEqHy5x8EJxrLian742S0di0=
github.com/softchris/logger v0.1.0/go.mod h1:rrzWjMsM3tqjetDBDyezI8mFCjGucF/b5RSAqptKF/M=
go run
で実行します. go run main.go
次のようになります. [LOG] hey there
概要
すごい、あなたはローカルでモジュールを作成することができました.
Reference
この問題について(最初から移動します-パッケージとモジュールの操作), 我々は、より多くの情報をここで見つけました https://dev.to/azure/go-from-the-beginning-working-with-packages-and-modules-4cl4テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol