Solicitação de pacotes Maven de upstreams e conexões externas - CodeArtifact

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á.

Solicitação de pacotes Maven de upstreams e conexões externas

Importação de nomes de ativos padrão

Ao importar uma versão do pacote Maven de um repositório público, como o Maven Central, a AWS CodeArtifact tenta importar todos os ativos dessa versão do pacote. Conforme descrito em Solicitar uma versão do pacote com repositórios upstream, a importação ocorre quando:

  • Um cliente solicita um ativo Maven de um CodeArtifact repositório.

  • A versão do pacote ainda não está presente em seu repositório ou em upstreams.

  • Há uma conexão externa acessível com um repositório público do Maven.

Mesmo que o cliente tenha solicitado apenas um ativo, CodeArtifact tenta importar todos os ativos encontrados para essa versão do pacote. A forma como CodeArtifact descobrir quais ativos estão disponíveis para uma versão do pacote Maven depende do repositório público específico. Alguns repositórios públicos do Maven oferecem suporte à solicitação de uma lista de ativos, mas outros não. Para repositórios que não fornecem uma forma de listar ativos, CodeArtifact gera um conjunto de nomes de ativos que provavelmente existem. Por exemplo, quando qualquer ativo da versão do pacote Maven junit 4.13.2 for solicitado, CodeArtifact tentará importar os seguintes ativos:

  • junit-4.13.2.pom

  • junit-4.13.2.jar

  • junit-4.13.2-javadoc.jar

  • junit-4.13.2-sources.jar

Importação de nomes de ativos não padrão

Quando um cliente Maven solicita um ativo que não corresponde a um dos padrões descritos acima, CodeArtifact verifica se esse ativo está presente no repositório público. Se o ativo estiver presente, ele será importado e adicionado ao registro da versão do pacote existente, se houver. Por exemplo, a versão com.android.tools.build:aapt2 7.3.1-8691043 do pacote Maver contém os seguintes ativos:

  • aapt2-7.3.1-8691043.pom

  • aapt2-7.3.1-8691043-windows.jar

  • aapt2-7.3.1-8691043-osx.jar

  • aapt2-7.3.1-8691043-linux.jar

Quando um cliente solicita o arquivo POM, CodeArtifact se não conseguir listar os ativos da versão do pacote, o POM será o único ativo importado. Isso ocorre porque nenhum dos outros ativos corresponde aos padrões de nomes de ativos padrão. No entanto, quando o cliente solicita um dos ativos JAR, esse ativo será importado e adicionado à versão do pacote existente armazenada em CodeArtifact. As versões do pacote no repositório mais downstream (o repositório no qual o cliente fez a solicitação) e no repositório com a conexão externa anexada serão atualizadas para conter o novo ativo, conforme descrito em Retenção de pacotes de repositórios upstream.

Normalmente, quando uma versão do pacote é retida em um CodeArtifact repositório, ela não é afetada pelas alterações nos repositórios upstream. Para ter mais informações, consulte Retenção de pacotes de repositórios upstream. No entanto, o comportamento dos ativos do Maven com nomes não padrão descritos anteriormente é uma exceção a essa regra. Embora a versão downstream do pacote não mude sem que um ativo adicional seja solicitado por um cliente, nessa situação, a versão retida do pacote é modificada após ser inicialmente retida e, portanto, não é imutável. Esse comportamento é necessário porque ativos do Maven com nomes não padrão, de outra forma, não estariam acessíveis por meio do. CodeArtifact O comportamento também é ativado se eles forem adicionados a uma versão do pacote Maven em um repositório público após a versão do pacote ter sido retida em um repositório. CodeArtifact

Verificação das origens dos ativos

Ao adicionar um novo ativo a uma versão de pacote Maven retida anteriormente, CodeArtifact confirma que a origem da versão retida do pacote é a mesma origem do novo ativo. Isso impede a criação de uma versão de pacote “mista” em que diferentes ativos são originários de diferentes repositórios públicos. Sem essa verificação, a mistura de ativos pode ocorrer se uma versão do pacote Maven for publicada em mais de um repositório público e esses repositórios fizerem parte do gráfico upstream de um CodeArtifact repositório.

Importação de novos ativos e status da versão do pacote em repositórios upstream

O status da versão do pacote das versões do pacote nos repositórios upstream pode CodeArtifact impedir a retenção dessas versões nos repositórios downstream.

Por exemplo, digamos que um domínio tenha três repositórios:repo-A, repo-B e repo-C, onde repo-B é um upstream de repo-A e repo-C é upstream de repo-B.

Um diagrama de como os novos ativos e versões de pacotes funcionam nos repositórios upstream.

A versão 7.3.1 do pacote Maven com.android.tools.build:aapt2 está presente em repo-B e tem o status de Published. Não está presente em repo-A. Se um cliente solicitar um ativo dessa versão do pacote do repo-A, a resposta será 200 (OK) e a versão 7.3.1 do pacote Maven será retida no repo-A. No entanto, se o status da versão 7.3.1 do pacote no repo-B for Archived ouDisposed, a resposta será 404 (Não encontrado), pois os ativos das versões do pacote nesses dois status não podem ser baixados.

Observe que definir o controle de origem do pacote como upstream=BLOCK para com.android.tools.build:aapt2 no repo-A, repo-B e repo-C evitará que novos ativos sejam buscados para todas as versões desse pacote do repo-A, independentemente do status da versão do pacote.