Explorar pacotes
Os pacotes são usados para definir os componentes nos quais você confia e depende em sua solução de software. Eles fornecem uma maneira de armazenar esses componentes em um formato bem definido com metadados para descrevê-los.
O que é um pacote?
Um pacote é uma maneira formalizada de criar uma unidade distribuível de artefatos de software que podem ser consumidos de outra solução de software.
Principais características das embalagens:
- Descrição do conteúdo: O pacote descreve o conteúdo que ele contém.
- Metadados: Fornece informações adicionais sobre o pacote (versão, autor, dependências).
- Identificação única: As informações identificam exclusivamente os pacotes individuais.
- Autodescritivo: O formato do pacote é padronizado e bem documentado.
Benefícios da utilização de embalagens:
- Armazenamento centralizado: Armazene pacotes em locais centralizados para facilitar o acesso.
- Consumo previsível: Consuma o conteúdo da embalagem de forma consistente.
- Suporte de ferramentas: Habilite ferramentas automatizadas para gerenciar pacotes em sua solução de software.
- Gerenciamento de versões: Rastreie e gerencie diferentes versões de componentes.
- Resolução de dependências: Resolva e instale automaticamente as dependências necessárias.
Componentes do pacote
Uma embalagem típica contém:
- Código compilado: Bibliotecas, assemblies ou arquivos executáveis.
- Ficheiros de origem: Em alguns casos, código-fonte para depuração ou referência.
- Metadados: Informações sobre o pacote (nome, versão, autor, licença, dependências).
- Documentação: Arquivos LEIA-ME, documentação de API ou guias de uso.
- Ativos: Imagens, arquivos de configuração ou outros recursos.
Tipos de pacotes
Os pacotes podem ser usados para diferentes tipos de componentes. O tipo de componentes que você deseja usar em sua base de código diferem para as diferentes partes e camadas da solução que você está criando.
Gamas de componentes:
- Componentes front-end: Arquivos de código JavaScript, bibliotecas CSS, estruturas de interface do usuário.
- Componentes de back-end: assemblies .NET, Java JARs, módulos Python.
- Soluções completas: Aplicações autónomas ou microsserviços.
- Ficheiros reutilizáveis: Modelos, configurações ou documentação.
Nos últimos anos, os formatos de embalagem mudaram e evoluíram. Agora existem vários formatos padrão de facto para pacotes.
Pacotes NuGet
Os pacotes NuGet (pronuncia-se "new get") são um padrão usado para artefatos de código .NET.
Caraterísticas:
- Índice: Inclui assemblies .NET e arquivos relacionados, ferramentas e, às vezes, apenas metadados.
- Formato: Essencialmente uma estrutura de pastas comprimidas com ficheiros em formato ZIP.
-
Extensão:
.nupkgextensão de arquivo. - Utilização: Define como os pacotes são criados, armazenados e consumidos no ecossistema .NET.
Consulte também Uma introdução ao NuGet.
Pacotes npm
Os pacotes npm são usados para desenvolvimento JavaScript.
Caraterísticas:
- Origem: Origina-se de Node.js desenvolvimento onde é o formato de empacotamento padrão.
-
Índice: Arquivo ou pasta contendo arquivos JavaScript e um
package.jsonarquivo. -
Metadados:
package.jsondescreve os metadados, dependências e scripts do pacote. - Módulos: O pacote geralmente inclui um ou mais módulos que podem ser carregados uma vez consumidos.
Consulte também Sobre pacotes e módulos.
Pacotes Maven
O Maven é usado para projetos baseados em Java.
Caraterísticas:
- Modelo de objeto do projeto: Cada pacote tem um arquivo POM descrevendo os metadados do projeto.
- Formato: Arquivos JAR (Java Archive) para bibliotecas, WAR (Web Archive) para aplicações web.
- Coordenadas: Identificado por groupId, artifactId e versão.
- Ferramenta de construção: O Maven serve como gerenciador de pacotes e ferramenta de automação de compilação.
Pacotes PyPI
PyPI (Python Package Index), abreviado como PyPI e conhecido como Cheese Shop, é o repositório oficial de software de terceiros para Python.
Caraterísticas:
-
Formato: Distribuições nos formatos wheel (
.whl) ou source distribution (.tar.gz). - Ferramenta: Gerenciado usando pip (instalador de pacotes para Python).
- Índice: Módulos Python e pacotes com dependências.
-
Metadados:
setup.pyoupyproject.tomlarquivos definem informações do pacote.
Imagens do Docker
Os pacotes do Docker são chamados de imagens e contêm implantações completas e independentes de componentes.
Caraterísticas:
- Autossuficiente: Uma imagem do Docker geralmente representa um componente de software que pode ser hospedado e executado por si só.
- Arquitetura em camadas: As imagens são construídas em camadas para eficiência e reutilização.
- Imagens de base: As imagens podem ser dependentes de outras imagens como base (por exemplo, Ubuntu, Alpine).
- Registos: Armazenado em registros do Docker (Docker Hub, Azure Container Registry).
Escolher o tipo de embalagem certo
| Tipo de embalagem | Uso primário | Idioma/Plataforma | Extensão |
|---|---|---|---|
| NuGet | Bibliotecas e ferramentas .NET | C#, F# VB.NET | .nupkg |
| NPM | Bibliotecas e estruturas JavaScript | JavaScript, TypeScript | N/D (pasta) |
| Maven | Bibliotecas e aplicações Java | Java, Kotlin, Scala |
.jar, .war |
| PyPI | Bibliotecas e pacotes Python | Python |
.whl, .tar.gz |
| Docker | Aplicações em contentores | Qualquer língua | Camadas de imagem |