Repositório de instantâneos Maven vs repositório de liberação


103

Qual é a diferença entre um Repositório de instantâneos e um Repositório de liberação ?

Isso se refere à configuração de Repositórios (como Artifactory, Nexus etc)


Com o que isso está relacionado? Fonte de controle? Não é a terminologia padrão até onde eu sei, mas posso supor que um instantâneo foi usado como uma imagem de uma árvore de origem em um ponto no tempo (provavelmente para uso interno), enquanto uma versão é usada para o código que é lançado externamente.
1800 INFORMAÇÕES

Parece que você está perguntando sobre o Maven (a ferramenta de construção). Talvez você deva incluir isso na pergunta e nas tags.
bendin

Respostas:


67

Liberar artefatos

Essas são versões específicas e pontuais. Os artefatos liberados são considerados sólidos, estáveis ​​e perpétuos para garantir que as compilações que dependem deles sejam repetidas ao longo do tempo. Os artefatos JAR liberados são associados às assinaturas PGP e as somas de verificação verificam a autenticidade e a integridade do artefato de software binário. O repositório Central Maven armazena artefatos de liberação.

Artefatos instantâneos

Os instantâneos capturam um trabalho em andamento e são usados ​​durante o desenvolvimento. Um artefato de instantâneo tem um número de versão como “1.3.0” ou “1.3” e um carimbo de data / hora. Por exemplo, um artefato de instantâneo para commons-lang 1.3.0 pode ter o nome commons-lang-1.3.0-20090314.182342-1.jar.

Retirado de refcard


Sayat, é 1.1.0.M5 ou 1.1.0.M4 uma versão do instantâneo?
Alexander Suraphel

4
Isso define o que são artefatos de liberação e instantâneo. Mas: são necessários dois repositórios distintos?
dna

1
Informações bem escritas encontradas em docs.oracle.com/middleware/1212/core/MAVEN/…
Yoav Epstein

1
Isso não responde à pergunta, a pergunta é sobre a distinção entre repositórios de lançamento e instantâneos (não artefatos).
mks-d

1
@ mks-d Boa observação, mas é difícil entender um repositório de algo sem entender primeiro o que é esse "algo". :) stackoverflow.com/a/5901460
datv

86

Os repositórios de lançamento contêm lançamentos e os repositórios de instantâneos contêm instantâneos. No maven, um instantâneo é definido como um artefato com uma versão que termina em -SNAPSHOT. Quando implantado, o instantâneo é transformado em um carimbo de data / hora. Por definição, os instantâneos são mutáveis, as liberações são imutáveis. É por isso que o Nexus faz com que você os armazene separadamente, porque normalmente você não se importa se perder instantâneos, mas se importará se perder lançamentos. Isso torna muito mais fácil lidar com a limpeza de instantâneos.


12
Obrigado pelo "Quando implantado, o SNAPSHOT é transformado em um carimbo de data / hora" .
datv de

quando configurei o trabalho no Jenkins e usei artefatos de upload para o repositório de snapshot nexus, não consegui ver mais de um snapshot. Geralmente, quando fazemos alterações no projeto e acionamos uma construção, um novo artefato é criado. Embora isto esteja acontecendo, mas está renomeando-o para o mesmo 1.0-SNAPSHOT um pouco, deve nomeá-lo como 2.0-SNAPSHOT e assim por diante. Qualquer ajuda. @Brian Fox
frp farhan

Eu usei na seção de pós-compilação do Jenkins, implantar artefatos no repositório maven e configurá-lo como repositório instantâneo do Nexus.
frp farhan

3

Os instantâneos foram criados para fornecer o número da versão como -SNAPSHOTS, está em desenvolvimento e pode ser alterado a qualquer momento.

O repositório interno é o repositório de lançamento com número de versão fixo. Você pode modificar os SNAPSHOTS, mas esse artefato nunca muda depois de ser lançado.


Para "está em desenvolvimento, pode mudar a qualquer momento" (para -SNAPSHOT)
datv

3

Normalmente, no maven, temos dois tipos de builds:

1) Construções de instantâneos : SNAPSHOT é a versão especial que indica a cópia de implantação atual e não uma versão regular específica. O Maven verifica a versão de cada construção no repositório remoto. As compilações de instantâneo nada mais são do que compilações de desenvolvimento.

2) Release builds : Release significa remover o SNAPSHOT no ID da versão para o build. Estas são as versões regulares de construção.

Artefatos de instantâneo e artefatos de liberação são enviados para instantâneo e repositórios de liberação, respectivamente.


0

SNAPSHOT aqui não significa realmente UM instantâneo que está congelado e não muda, SNAPSHOT cobre vários instantâneos cujas modificações não são grandes o suficiente para serem representadas por um novo número de versão

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.