Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Importazione di nomi di risorse standard
Quando importa una versione di pacchetto Maven da un repository pubblico, come Maven Central, CodeArtifact AWS tenta di importare tutte le risorse in quella versione del pacchetto. Come descritto in, l'importazione avviene quando: Richiesta di una versione del pacchetto con repository upstream
-
Un client richiede una risorsa Maven da un repository. CodeArtifact
-
La versione del pacchetto non è già presente nel repository o nei suoi upstream.
-
Esiste una connessione esterna raggiungibile a un repository Maven pubblico.
Anche se il client potrebbe aver richiesto solo una risorsa, CodeArtifact tenta di importare tutte le risorse che riesce a trovare per quella versione del pacchetto. Il modo in cui CodeArtifact scopre quali risorse sono disponibili per una versione del pacchetto Maven dipende dal particolare archivio pubblico. Alcuni repository Maven pubblici supportano la richiesta di un elenco di risorse, ma altri no. Per i repository che non forniscono un modo per elencare le risorse, CodeArtifact genera una serie di nomi di risorse che è probabile che esistano. Ad esempio, quando viene richiesta una risorsa della versione junit 4.13.2
del pacchetto Maven, CodeArtifact tenterà di importare le seguenti risorse:
junit-4.13.2.pom
junit-4.13.2.jar
junit-4.13.2-javadoc.jar
junit-4.13.2-sources.jar
Importazione di nomi di asset non standard
Quando un client Maven richiede una risorsa che non corrisponde a uno dei modelli sopra descritti, CodeArtifact verifica se quella risorsa è presente nell'archivio pubblico. Se la risorsa è presente, verrà importata e aggiunta al record della versione del pacchetto esistente, se esistente. Ad esempio, la versione del pacchetto Maven com.android.tools.build:aapt2
7.3.1-8691043
contiene le seguenti risorse:
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 un client richiede il file POM, se non CodeArtifact è in grado di elencare gli asset della versione del pacchetto, il POM sarà l'unica risorsa importata. Questo perché nessuna delle altre risorse corrisponde ai modelli di denominazione degli asset standard. Tuttavia, quando il client richiede una delle risorse JAR, tale risorsa verrà importata e aggiunta alla versione del pacchetto esistente archiviata in CodeArtifact. Le versioni del pacchetto presenti sia nel repository più a valle (l'archivio verso cui il client ha effettuato la richiesta) che nel repository con la connessione esterna collegata verranno aggiornate per contenere la nuova risorsa, come descritto in. Package retention dai repository upstream
Normalmente, una volta che una versione del pacchetto viene conservata in un CodeArtifact repository, non è influenzata dalle modifiche apportate ai repository upstream. Per ulteriori informazioni, consulta Package retention dai repository upstream. Tuttavia, il comportamento degli asset Maven con nomi non standard descritto in precedenza è un'eccezione a questa regola. Sebbene la versione downstream del pacchetto non cambierà senza che un client richieda una risorsa aggiuntiva, in questa situazione, la versione del pacchetto conservata viene modificata dopo essere stata inizialmente mantenuta e quindi non è immutabile. Questo comportamento è necessario perché altrimenti le risorse Maven con nomi non standard non sarebbero accessibili tramite. CodeArtifact Il comportamento si attiva anche se vengono aggiunti a una versione del pacchetto Maven su un repository pubblico dopo che la versione del pacchetto è stata conservata in un repository. CodeArtifact
Verifica delle origini delle risorse
Quando si aggiunge una nuova risorsa a una versione del pacchetto Maven precedentemente conservata, CodeArtifact conferma che l'origine della versione del pacchetto conservata è la stessa dell'origine della nuova risorsa. Ciò impedisce la creazione di una versione del pacchetto «mista» in cui risorse diverse provengono da diversi archivi pubblici. Senza questo controllo, potrebbe verificarsi una combinazione di risorse se una versione del pacchetto Maven viene pubblicata su più di un repository pubblico e tali repository fanno parte del grafico upstream di un CodeArtifact repository.
Importazione di nuove risorse e dello stato delle versioni dei pacchetti nei repository upstream
Lo stato della versione del pacchetto delle versioni dei pacchetti negli archivi upstream può CodeArtifact impedire il mantenimento di tali versioni nei repository downstream.
Ad esempio, supponiamo che un dominio abbia tre repository:repo-A
,, e repo-B
repo-C
, dove si trova un upstream di e repo-B
sta a monte di. repo-A
repo-C
repo-B

La versione 7.3.1
del pacchetto Maven com.android.tools.build:aapt2
è presente in repo-B
e ha uno stato di. Published
Non è presente in. repo-A
Se un client richiede una risorsa di questa versione del pacchetto darepo-A
, la risposta sarà 200 (OK) e la versione del pacchetto Maven 7.3.1
verrà mantenuta. repo-A
Tuttavia, se lo stato della versione del pacchetto 7.3.1
in repo-B
è Archived
oDisposed
, la risposta sarà 404 (Not Found) perché le risorse delle versioni del pacchetto in questi due stati non sono scaricabili.
Nota che l'impostazione del controllo di origine del pacchetto su upstream=BLOCK
for com.android.tools.build:aapt2
in repo-A
repo-B
, repo-C
impedirà il recupero di nuove risorse per tutte le versioni di quel pacchettorepo-A
, indipendentemente dallo stato della versione del pacchetto.