Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk mengimport ruang kerja sebagai pergantungan ke repositori go yang lain?
editor php Yuzai di sini untuk berkongsi dengan anda soalan tentang bahasa Go: "Bagaimana untuk mengimport ruang kerja sebagai kebergantungan ke dalam repositori Go yang lain dalam pembangunan bahasa Go, pengurusan kebergantungan ialah Soalan Lazim. Kadangkala, kita mungkin perlu mengimport ruang kerja sebagai pergantungan ke dalam repositori lain untuk digunakan dalam projek. Dalam artikel ini, saya akan memberi anda pengenalan terperinci tentang cara mencapai matlamat ini untuk membantu anda mengurus kebergantungan projek bahasa Go anda dengan lebih baik.
Saya mempunyai projek berbilang ruang kerja, strukturnya ialah:
apps/go.mod go.work
Projek ini mengandungi submodul apps
及其 go.work
Fail mempunyai:
go 1.180 use ( ./apps )
Saya mempunyai satu lagi projek go (repositori berasingan) yang saya mahu gunakan ini app
子模块作为库导入,下面是go.mod
:
module xxxx go 1.18 require ( github.com/zhaoyi0113/test-go-module v0.0.3 // indirect )
Kemudian saya mempunyai kod berikut:
package main import ( "github.com/zhaoyi0113/test-go-module/apps/logger" ) func main() { logger.test() }
Kompilasi gagal dengan ralat berikut:
main.go:7:2: no required module provides package github.com/zhaoyi0113/test-go-module/apps/logger; to add it: go get github.com/zhaoyi0113/test-go-module/apps/logger
Bagaimana untuk mengimport submodul daripada projek berbilang ruang kerja?
Anda tidak boleh mengimport ruang kerja.
Keadaan semasa adalah seperti berikut:
github.com/zhaoyi0113/test-go-module/apps
有一个模块 声明其模块路径为 github.com/zhaoyi0113/test-go-module
。该模块不可用,因为该模块的实际路径与声明的路径不匹配(请注意其中一个路径中缺少 /apps
).
xxxx perlu berada dalam subdirektori github.com/zhaoyi0113/test-go-module
,但在该路径下没有找到模块。它位于 apps
, seperti yang diterangkan dalam perenggan sebelumnya.
Terdapat dua kemungkinan pembetulan bergantung pada tempat anda ingin meletakkan modul.
Jika anda ingin menyimpan go.mod yang diimport dalam direktori semasa kemudian kemas kini laluan modul untuk disertakan apps
:
Import modul go.mod:
module github.com/zhaoyi0113/test-go-module/apps go 1.19
go.mod untuk mengimport modul:
module xxxx go 1.18 require ( github.com/zhaoyi0113/test-go-module/apps v0.0.3 // indirect )
Yang kedua juga adalah pilihan biasa Hanya letakkan go.mod dalam direktori akar projek dan letakkan fail go.work di luar projek. Untuk melaksanakan ini, alihkan go.mod ke punca projek (kerana ia berada dalam komit asal) dan alihkan go.work ke tempat lain. Tiada perubahan diperlukan pada modul yang diimport.
Atas ialah kandungan terperinci Bagaimana untuk mengimport ruang kerja sebagai pergantungan ke repositori go yang lain?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!