Tool Dependencies
Gerenciamento de dependências de ferramentas com a diretiva tool (Go 1.24+)
Introdução
O problema antes do Go 1.24
O Hack tools.go
//go:build tools
// +build tools
package tools
import (
_ "github.com/golangci/golangci-lint/cmd/golangci-lint"
_ "golang.org/x/tools/cmd/goimports"
_ "github.com/swaggo/swag/cmd/swag"
)A solução: diretiva tool
toolSintaxe
Como adicionar uma tool
toolComo executar uma `tool```
Exemplo
go.mod com tool
toolSetup de novo desenvolvedor
Comandos úteis
Gerenciamento de ferramentas
Executar tool
toolVantagens da diretiva tool
Aspecto
tools.go (antigo)
tool (Go 1.24+)
Casos de uso comuns
1. Linters e Formatadores
2. Geradores de código
3. Ferramentas de teste e cobertura
Cache de ferramentas
Integração com CI/CD
GitHub Actions
Makefile
Problema: Conflitos de dependências
O Desafio
Solução 1: Aceitar o conflito (simples)
Solução 2: go.mod separado (avançado)
Migrando de tools.go
Antes (tools.go)
Depois (go.mod)
Passos de migração
Melhores práticas
✅ Faça
❌ Evite
Troubleshooting
Erro: "unknown command"
Erro: Versão conflitante
Cache não funciona
Recursos adicionais
Conclusão
Last updated