

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Usar somas de verificação do Maven
<a name="maven-checksums"></a>

 Quando um artefato Maven é publicado em um AWS CodeArtifact repositório, a soma de verificação associada a cada *ativo* ou arquivo no pacote é usada para validar o upload. Os arquivos *jar*, *pom* e *war* são exemplos de ativos. Para cada ativo, o artefato do Maven contém vários arquivos de soma de verificação que usam o nome do ativo com uma extensão adicional, como `md5` ou `sha1`. Por exemplo, os arquivos de soma de verificação de um arquivo chamado `my-maven-package.jar` podem ser `my-maven-package.jar.md5` e `my-maven-package.jar.sha1`. 

**nota**  
 O Maven usa o termo`artifact`. Neste guia, um pacote Maven é o mesmo que um artefato do Maven. Para obter mais informações, consulte o [AWS CodeArtifactpacote](https://docs.aws.amazon.com/codeartifact/latest/ug/welcome.html#welcome-concepts-package). 

## Armazenamento da soma de verificação
<a name="maven-checksum-storage"></a>

CodeArtifact não armazena somas de verificação do Maven como ativos. [Isso significa que as somas de verificação não aparecem como ativos individuais na saída da ListPackageVersionAssets API.](https://docs.aws.amazon.com/codeartifact/latest/APIReference/API_ListPackageVersionAssets.html) Em vez disso, as somas de verificação calculadas por CodeArtifact estão disponíveis para cada ativo em todos os tipos de soma de verificação compatíveis. Por exemplo, parte da resposta da chamada ListPackageVersionAssets na versão do pacote Maven `commons-lang:commons-lang 2.1` é:

```
{
    "name": "commons-lang-2.1.jar",
    "size": 207723,
    "hashes": {
        "MD5": "51591549f1662a64543f08a1d4a0cf87",
        "SHA-1": "4763ecc9d78781c915c07eb03e90572c7ff04205",
        "SHA-256": "2ded7343dc8e57decd5e6302337139be020fdd885a2935925e8d575975e480b9",
        "SHA-512": "a312a5e33b17835f2e82e74ab52ab81f0dec01a7e72a2ba58bb76b6a197ffcd2bb410e341ef7b3720f3b595ce49fdd9994ea887ba08ff6fe21b2c714f8c405af"
    }
},
{
    "name": "commons-lang-2.1.pom",
    "size": 9928,
    "hashes": {
        "MD5": "8e41bacdd69de9373c20326d231c8a5d",
        "SHA-1": "a34d992202615804c534953aba402de55d8ee47c",
        "SHA-256": "f1a709cd489f23498a0b6b3dfbfc0d21d4f15904791446dec7f8a58a7da5bd6a",
        "SHA-512": "1631ce8fe4101b6cde857f5b1db9b29b937f98ba445a60e76cc2b8f2a732ff24d19b91821a052c1b56b73325104e9280382b2520edda4e7696698165c7e09161"
    }
},
        {
    "name": "maven-metadata.xml",
    "size": 121,
    "hashes": {
        "MD5": "11bb3d48d984f2f49cea1e150b6fa371",
        "SHA-1": "7ef872be17357751ce65cb907834b6c5769998db",
        "SHA-256": "d04d140362ea8989a824a518439246e7194e719557e8d701831b7f5a8228411c",
        "SHA-512": "001813a0333ce4b2a47cf44900470bc2265ae65123a8c6b5ac5f2859184608596baa4d8ee0696d0a497755dade0f6bf5e54667215a06ceae1effdfb7a8d30f88"
    }
}
```

 Mesmo que as somas de verificação não sejam armazenadas como ativos, os clientes do Maven ainda podem publicar e baixar as somas de verificação nos locais esperados. Por exemplo, se `commons-lang:commons-lang 2.1` estivesse em um repositório chamado `maven-repo`, o caminho do URL para a soma de verificação SHA-256 do arquivo JAR seria:

```
/maven/maven-repo/commons-lang/commons-lang/2.1/commons-lang-2.1.jar.sha256
```

Se você estiver fazendo o upload de pacotes Maven existentes (por exemplo, pacotes previamente armazenados no Amazon S3) CodeArtifact para usar um cliente HTTP genérico, `curl` como, por exemplo, não é necessário carregar as somas de verificação. CodeArtifact os gerará automaticamente. Se quiser verificar se os ativos foram carregados corretamente, você pode usar a operação da ListPackageVersionAssets API para comparar as somas de verificação na resposta com os valores originais de cada ativo.

## Incompatibilidades da soma de verificação durante a publicação
<a name="maven-checksum-mismatch"></a>

Além dos ativos e das somas de verificação, os artefatos do Maven também contêm um arquivo `maven-metadata.xml`. A sequência normal de publicação de um pacote Maven é que todos os ativos e somas de verificação sejam carregados primeiro, seguidos por `maven-metadata.xml`. Por exemplo, a sequência de publicação da versão `commons-lang 2.1` do pacote Maven descrita anteriormente, supondo que o cliente tenha sido configurado para publicar arquivos da soma de verificação SHA-256, seria:

```
PUT commons-lang-2.1.jar
PUT commons-lang-2.1.jar.sha256
PUT commons-lang-2.1.pom
PUT commons-lang-2.1.pom.sha256
PUT maven-metadata.xml
PUT maven-metadata.xml.sha256
```

Ao carregar o arquivo de soma de verificação de um ativo, como um arquivo JAR, a solicitação de upload da soma de verificação falhará com uma resposta **400 (Solicitação inválida)** se houver uma incompatibilidade entre o valor da soma de verificação carregada e o valor da soma de verificação calculado por. CodeArtifact Se o ativo correspondente não existir, a solicitação falhará com a resposta **404 (Não encontrado)**. Para evitar esse erro, você deve primeiro carregar o ativo e, em seguida, fazer o upload da soma de verificação.

Quando `maven-metadata.xml` é carregado, CodeArtifact normalmente muda o status da versão do pacote Maven de `Unfinished` para`Published`. Se uma incompatibilidade de soma de verificação for detectada para qualquer ativo, CodeArtifact retornará **400 (solicitação inválida)** em resposta à solicitação de `maven-metadata.xml` publicação. Esse erro pode impedir que o cliente faça upload de arquivos para essa versão do pacote. Se isso ocorrer e o arquivo `maven-metadata.xml` não for carregado, nenhum ativo da versão do pacote já carregado poderá ser baixado. Isso ocorre porque o status da versão do pacote não está definido como `Published` e permanece como `Unfinished`.

CodeArtifact permite adicionar mais ativos a uma versão do pacote Maven mesmo após `maven-metadata.xml` o upload e o status da versão do pacote ter sido definido como. `Published` Nesse status, uma solicitação para carregar um arquivo de soma de verificação incompatível também falhará com uma resposta **400 (Solicitação inválida)**. No entanto, como o status da versão do pacote já foi definido como `Published`, você pode baixar qualquer ativo do pacote, incluindo aqueles para os quais o upload do arquivo de soma de verificação falhou. Ao baixar uma soma de verificação para um ativo em que o upload do arquivo de soma de verificação falhou, o valor da soma de verificação que o cliente receberá será o valor da soma de verificação calculado CodeArtifact com base nos dados do ativo carregado.

CodeArtifact as comparações de somas de verificação diferenciam maiúsculas de minúsculas e as somas de verificação calculadas por CodeArtifact são formatadas em minúsculas. Portanto, se a soma de verificação `909FA780F76DA393E992A3D2D495F468` for carregada, ela falhará com uma incompatibilidade de soma de verificação porque CodeArtifact não a trata como igual a. `909fa780f76da393e992a3d2d495f468`

## Recuperação no caso de incompatibilidades da soma de verificação
<a name="maven-checksum-mismatch-recovery"></a>

Se o upload de uma soma de verificação falhar como resultado de uma incompatibilidade, tente uma das seguintes opções de recuperação:
+ Execute o comando que publica o artefato do Maven novamente. Isso pode funcionar se um problema de rede tiver corrompido o arquivo de soma de verificação. Se isso resolver o problema de rede, a soma de verificação será correspondente e o download será concluído.
+ Exclua a versão do pacote e, em seguida, faça uma nova publicação. Para obter mais informações, consulte [DeletePackageVersions](https://docs.aws.amazon.com/dms/latest/APIReference/API_DeletePackageVersions.html)a *AWS CodeArtifact API Reference*.