Rumah >pembangunan bahagian belakang >Golang >Bagaimanakah Saya Boleh Memasang Alat Go Menggunakan Modul Go Tanpa Memecah Projek Saya?

Bagaimanakah Saya Boleh Memasang Alat Go Menggunakan Modul Go Tanpa Memecah Projek Saya?

DDD
DDDasal
2024-12-08 04:49:13166semak imbas

How Can I Install Go Tools Using Go Modules Without Breaking My Project?

modul go: Memasang Alat Go

Apabila menggunakan modul go sebagai sistem pengurusan pergantungan anda, anda mungkin menghadapi kesukaran memasang alatan menggunakan sintaks:

go get -u github.com/go-critic/go-critic/...

Ini boleh mengakibatkan satu ralat:

go: cannot find main module; see 'go help modules'

Untuk menyelesaikan masalah ini, pertimbangkan dua senario ini:

Kes 1: Memasang Alat Tanpa Mengubah Suai go.mod Anda

Jika anda tidak berniat untuk menjejaki alat sebagai pergantungan dalam go.mod anda, anda mempunyai beberapa pilihan:

  1. Alih ke direktori tanpa go.mod, seperti /tmp, dan jalankan arahan go get di sana.
  2. Gunakan arahan gobin, yang membolehkan anda memasang atau jalankan binari tanpa menjejaskan kebergantungan modul semasa anda. Pasang menggunakan sintaks seperti gobin install github.com/some/package.

Untuk butiran lanjut, lihat jawapan berkaitan ini, yang termasuk penyelesaian untuk Go 1.11 dan pilihan yang akan datang dalam Go 1.14.

Kes 2: Ketergantungan Alat Penjejakan

Jika anda mahu jejak alat secara eksplisit sebagai pergantungan dalam go.mod anda, ikuti langkah berikut:

  1. Buat fail tools.go dalam pakej yang berasingan.
  2. Tambah //go:build teg binaan alatan, seperti:
//go:build tools
// +build tools

package tools

import (
    _ "golang.org/x/tools/cmd/stringer"
)

Pernyataan import akan merekodkan maklumat versi alat dalam go.mod anda, manakala kekangan alat binaan // menghalang binaan biasa daripada mengimport alatan anda.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memasang Alat Go Menggunakan Modul Go Tanpa Memecah Projek Saya?. 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