go.mod
Aprenda como gerar e configurar o arquivo go.mod para gerenciar módulos e dependências para aplicações Go na Discloud.
🗂️ O que é go.mod?
go.mod?go.mod define o caminho do seu módulo, a versão da toolchain Go (no formato major.minor), e as dependências diretas necessárias pelo seu projeto. A Discloud usa ele (e o go.sum acompanhante) para baixar e verificar módulos antes de construir sua aplicação.
🛠️ Criando um Novo Módulo
Inicialize um módulo no diretório atual:
go mod init github.com/you/yourappAdicione (ou atualize) dependências automaticamente referenciando-as no código e organizando:
go mod tidyIsso cria go.sum (não deve estar vazio) com linhas de checksum.
Adicione uma dependência específica explicitamente:
go get github.com/go-chi/chi/v5Então organize novamente se necessário:
go mod tidy🧩 Exemplo Mínimo
module github.com/you/yourapp
go 1.22A versão do Go DEVE estar no formato major.minor (ex.: 1.22). NÃO use patch: 1.22.3.
📦 Adicionando Dependências
Para adicionar uma nova dependência, ou:
Importe-a no seu arquivo fonte e execute go mod tidy, ou
Execute go get module/path@version diretamente.
Exemplo: adicionar Chi router
go get github.com/go-chi/chi/v5Snippet resultante do go.mod:
require (
github.com/go-chi/chi/v5 v5.0.12 // versão exemplo
)As versões são resolvidas semanticamente pelo sistema proxy/módulo.
🔒 Integridade do go.sum & Caso Vazio
go.sum & Caso Vaziogo.sum contém hashes criptográficos de cada versão de módulo necessária (direta & indireta) para garantir builds reprodutíveis. Ele deve ser commitado junto com go.mod.
Regenere / atualize-o a qualquer momento:
go mod tidy🧪 Exemplos de Tipos de Aplicação
Exemplos em abas para cenários comuns:
module github.com/you/discordbot
go 1.22
require (
github.com/bwmarrin/discordgo v0.27.1 // exemplo
)module github.com/you/webapp
go 1.22
require (
github.com/go-chi/chi/v5 v5.0.12
)Requisitos:
Seu servidor HTTP deve escutar na porta
8080.
module github.com/you/stdlibonly
go 1.22🧰 Referência de Comandos Comuns
# Execute sua aplicação diretamente
go run .
# Construa um binário
go build -o app
# Liste todos os módulos (diretos+indiretos)
go list -m all
# Mostre o gráfico de dependências
go mod graphLast updated