Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk Menyelesaikan Konflik Kebergantungan Modul Go dengan Import Peringkat Atas dan Submodul?

Bagaimana untuk Menyelesaikan Konflik Kebergantungan Modul Go dengan Import Peringkat Atas dan Submodul?

Barbara Streisand
Barbara Streisandasal
2024-11-03 22:04:30301semak imbas

How to Resolve Go Module Dependency Conflicts with Top-Level and Sub-module Imports?

Menyelesaikan Konflik Kebergantungan Modul Go dengan Import Peringkat Atas dan Submodul

Isu ini timbul apabila modul peringkat atas dan salah satu sub-modulnya diimport secara berasingan sebagai versi berbeza, yang membawa kepada kebergantungan yang bercanggah. Pertimbangkan senario di mana projek anda mempunyai dua kebergantungan, github.com/foo/bar dan github.com/raz/mataz. Selepas melaksanakan muat turun mod go, dua versi github.com/shared/dependency yang berbeza dimuat turun kerana terdapat sub-modul.

Memeriksa modul yang dimuat turun mendedahkan berbilang versi yang dimuat turun:

  • ${GOPATH}/pkg/mod/github.com/shared/[email protected]: Mengandungi keseluruhan kandungan repositori, termasuk sub-modul.
  • ${GOPATH}/pkg/mod /github.com/shared/dependency/[email protected]: Mengandungi sub-modul api sahaja.

Ketidakpadanan ini mengakibatkan ralat import yang tidak jelas apabila cuba mengimport github.com/ dikongsi/bergantung/api. Alat go tidak dapat menentukan versi yang hendak digunakan kerana versi bercanggah yang terdapat dalam kedua-dua direktori.

Penyelesaian: Menaik Taraf Versi Ketergantungan

Punca isu ini selalunya berkaitan dengan versi pra-go-modul dalam kebergantungan yang bercanggah. Menambah baris berikut pada fail go.mod anda memaksa kebergantungan yang bercanggah untuk menggunakan versi yang didayakan go-module:

replace (
    github.com/shared/dependency => github.com/shared/dependency v1.2.0
)

Ini secara berkesan memaksa rujukan kepada github.com/shared/dependency untuk menggunakan versi yang serasi dengan go modul, menyelesaikan isu pergantungan yang bercanggah. Adalah penting untuk ambil perhatian bahawa penyelesaian ini berfungsi kerana semua rujukan kepada kebergantungan dikongsi diarahkan kepada versi yang didayakan go-module.

Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan Konflik Kebergantungan Modul Go dengan Import Peringkat Atas dan Submodul?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn