Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk Membenamkan Ketergantungan Perintah Masa Binaan (cth., `github.com/aprice/embed/cmd/embed`) dalam Modul Go?

Bagaimana untuk Membenamkan Ketergantungan Perintah Masa Binaan (cth., `github.com/aprice/embed/cmd/embed`) dalam Modul Go?

Linda Hamilton
Linda Hamiltonasal
2024-11-26 02:31:13364semak imbas

How to Embed a Build-Time Command Dependency (e.g., `github.com/aprice/embed/cmd/embed`) in Go Modules?

Membenamkan Kebergantungan Perintah dalam Modul Go

Pengenalan

Modul Go, yang diperkenalkan dalam Go 1.11, menyediakan pengurusan pergantungan untuk Go projek. Selain kebergantungan masa jalan, pengguna mungkin perlu menggunakan modul go semasa proses binaan, khususnya untuk alatan yang dijalankan semasa arahan go generate.

Soalan

Bagaimana saya boleh menggabungkan pergantungan binaan tertentu, seperti github.com/aprice/embed/cmd/embed, dan laksanakannya daripada direktori tertentu? Adakah go mendapatkan alat yang sesuai untuk tugas ini?

Jawapan

Menggunakan kaedah berikut, anda boleh membenamkan kebergantungan arahan dalam modul Go:

Mencipta "Alat" Pakej

  1. Buat direktori alat dalam projek anda:

    mkdir -p internal/tools
  2. Letakkan pakej alatan dalam direktori ini, seperti yang ditunjukkan di bawah:
// internal/tools/tools.go
// +build tools

package tools

import (
    _ "github.com/UnnoTed/fileb0x"
)
  1. Perhatikan bahawa teg binaan menentukan bila fail harus disusun dan boleh disesuaikan mengikut keperluan projek anda.

Mengemas kini go.mod

  1. Jalankan go mod tidy untuk mengemas kini fail go.mod anda dan sertakan pergantungan.
  2. Jika ini gagal, cuba laksanakan arahan tambahan seperti go get, go generate, atau go pasang.

Penjualan

  1. Laksanakan vendor mod go untuk memuat turun kod sumber untuk semua kebergantungan yang disenaraikan dalam go.mod.
  2. Ubah suai arahan binaan anda (cth., go build, go generate) untuk memasukkan bendera -mod=vendor. Ini memastikan projek anda menggunakan kebergantungan vendor.

Nota Tambahan

  • Jika anda menghadapi ralat yang menyatakan bahawa program anda bukan pakej yang boleh diimport , cipta pakej alatan dan import kebergantungan di sana.
  • Penjualan adalah penting untuk menggunakan cache modul dan mengelakkan konflik pergantungan.

Atas ialah kandungan terperinci Bagaimana untuk Membenamkan Ketergantungan Perintah Masa Binaan (cth., `github.com/aprice/embed/cmd/embed`) dalam Modul Go?. 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