Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk mengimport ruang kerja sebagai pergantungan ke repositori go yang lain?

Bagaimana untuk mengimport ruang kerja sebagai pergantungan ke repositori go yang lain?

王林
王林ke hadapan
2024-02-09 08:33:20638semak imbas

如何将工作区作为依赖项导入到另一个 go 存储库中?

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.

Kandungan soalan

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?

Penyelesaian

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).

Modul

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!

Kenyataan:
Artikel ini dikembalikan pada:stackoverflow.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam