Questa pagina descrive come aggiungere, visualizzare ed eliminare i pacchetti Java.
Se vuoi utilizzare sbt come strumento di compilazione per Scala e Java anziché Maven o Gradle, è disponibile un plug-in sbt creato dalla community. Questa documentazione non descrive la configurazione o l'utilizzo degli agenti Scala.
Prima di iniziare
- Se il repository di destinazione non esiste, creane uno nuovo.
- Verifica di disporre delle autorizzazioni necessarie per il repository.
- Verifica di aver configurato l'autenticazione. Se utilizzi un token di accesso, assicurati di aggiornarlo prima di collegarti al repository.
- (Facoltativo) Configura i valori predefiniti per i comandi gcloud.
Ruoli obbligatori
Per ottenere le autorizzazioni necessarie per gestire i pacchetti, chiedi all'amministratore di concederti i seguenti ruoli IAM nel repository:
-
Visualizza i pacchetti o i file nei pacchetti:
Lettore Artifact Registry (
roles/artifactregistry.reader
) -
Scarica o installa i pacchetti:
Artifact Registry Reader (
roles/artifactregistry.reader
) -
Aggiungi pacchetti a un repository:
Artifact Registry Writer (
roles/artifactregistry.writer
) -
Elimina i pacchetti:
Amministratore del repository Artifact Registry (
roles/artifactregistry.repoAdmin
)
Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso a progetti, cartelle e organizzazioni.
Potresti anche riuscire a ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.
Aggiunta di pacchetti
Modalità del repository: Standard
Per aggiungere pacchetti al repository:
Maven
Utilizza mvn deploy
e mvn release
per aggiungere pacchetti al repository.
Per eseguire correttamente il deployment di un progetto Maven che fa riferimento a un progetto principale, il progetto deve includere il provider Wagon di Artifact Registry in un file di estensioni di base come descritto nelle istruzioni di autenticazione.
Utilizza mvn deploy:deploy-file
per caricare gli elementi creati al di fuori di Maven.
Ad esempio, questo comando di esempio esegue il deployment di example/external.jar
e del relativo file del progetto example/pom.xml
nel repository us-central1-maven.pkg.dev/my-project/my-repo
mvn deploy:deploy-file \
-Durl=artifactregistry://us-central1-maven.pkg.dev/my-project/my-repo \
-DpomFile=example/pom.xml -Dfile=example/external.jar
Per configurare l'integrazione con Cloud Build, consulta Integrazione con Cloud Build.
Gradle
Per pubblicare correttamente nel repository, il file build.gradle
deve includere una sezione pubblicazioni che definisce i file da caricare.
Utilizza il comando gradle publish
per caricare un pacchetto nel repository.
Visualizzazione di pacchetti e versioni
Modalità del repository: standard, remoto
Per visualizzare i pacchetti e le relative versioni utilizzando la console Google Cloud o gcloud
:
Console
Apri la pagina Repository nella console Google Cloud .
Nell'elenco dei repository, fai clic sul repository appropriato.
La pagina Pacchetti elenca i pacchetti nel repository.
Fai clic su un pacchetto per visualizzarne le versioni.
gcloud
Per elencare i pacchetti in un repository, esegui il comando seguente:
gcloud artifacts packages list [--repository=REPOSITORY] [--location=LOCATION]
Sostituisci quanto segue:
REPOSITORY
è il nome del repository. Se hai configurato un repository predefinito, puoi omettere questo flag per utilizzare quello predefinito.-
LOCATION
è la posizione regionale o multiregionale del repository. Se hai configurato una località predefinita, puoi omettere questo flag per utilizzare quella predefinita.
Per visualizzare le versioni di un pacchetto, esegui questo comando:
gcloud artifacts versions list --package=PACKAGE \
[--repository=REPOSITORY] [--location=LOCATION]
Sostituisci quanto segue:
PACKAGE
è l'ID del pacchetto o l'identificatore completamente qualificato del pacchetto.REPOSITORY
è il nome del repository. Se hai configurato un repository predefinito, puoi omettere questo flag per utilizzare quello predefinito.-
LOCATION
è la posizione regionale o multiregionale del repository. Utilizza questo flag per visualizzare i repository in una posizione specifica. Se hai configurato una località predefinita, puoi omettere questo flag per utilizzare quella predefinita.
Per i repository remoti, l'elenco restituito deve includere tutte le dipendenze dirette e trascendenti.
File della scheda
Modalità del repository: standard, remoto
Puoi elencare i file in un repository, in tutte le versioni di un pacchetto specificato o in una versione specifica di un pacchetto.
Per tutti i comandi seguenti, puoi impostare un numero massimo di file da restituire
aggiungendo il flag --limit
al comando.
Per elencare tutti i file nel progetto, nel repository e nella località predefiniti quando i valori predefiniti sono configurati:
gcloud artifacts files list
Per elencare i file in un progetto, un repository e una posizione specificati, esegui il comando:
gcloud artifacts files list \
--project=PROJECT \
--repository=REPOSITORY \
--location=LOCATION
Per elencare i file di tutte le versioni di un pacchetto specifico:
gcloud artifacts files list \
--project=PROJECT \
--repository=REPOSITORY \
--location=LOCATION \
--package=PACKAGE
Per elencare i file di una versione specifica del pacchetto:
gcloud artifacts files list \
--project=PROJECT \
--repository=REPOSITORY \
--location=LOCATION \
--package=PACKAGE \
--version=VERSION
Sostituisci i seguenti valori:
LOCATION
: la località regionale o multiregionale del repository.PROJECT
: il tuo ID progetto Google Cloud . Se l'ID progetto contiene due punti (:
), consulta Progetti basati sul dominio.REPOSITORY
: il nome del repository in cui è memorizzata l'immagine.PACKAGE
: il nome del pacchetto.VERSION
: la versione del pacchetto.
Esempi
Prendi in considerazione le seguenti informazioni sul pacchetto:
- Progetto:
my-project
- Repository:
my-repo
- Posizione del repository:
us-west1
- Pacchetto:
my-app
Il seguente comando elenca tutti i file nel repository my-repo
nella
posizione us-west1
all'interno del progetto predefinito:
gcloud artifacts files list \
--location=us-west1 \
--repository=my-repo
1.0
del pacchetto.
gcloud artifacts files list \
--project=my-project \
--location=us-west1 \
--repository=my-repo \
--package=my-app \
--version=1.0
Download dei pacchetti
Modalità del repository: standard, remoto, virtuale
Per scaricare un artefatto nell'ambito della build, devi dichiararlo come dipendenza.
Maven
Dichiara i pacchetti che vuoi scaricare nel file
pom.xml
del progetto. L'esempio seguente dichiara la versione 1.0 del pacchettoartifact
come dipendenza.<dependencies> <dependency> <groupId>group</groupId> <artifactId>artifact</artifactId> <version>1.0</version> </dependency> </dependencies>
Per scoprire di più sulle dipendenze Maven, consulta l'introduzione alle dipendenze e il riferimento alle dipendenze di Maven.
Compila il progetto Java.
mvn compile
Gradle
Dichiara i pacchetti che vuoi scaricare nel file
build.gradle
del progetto. L'esempio seguente dichiara la versione 1.0 del pacchettoartifact
come dipendenza di compilazione esterna.Per scoprire di più sulle dipendenze di Gradle, consulta la documentazione di Gradle.
dependencies { compile group: 'group', name: 'artifact', version: '1.0' }
Compila il progetto Java.
gradle build
Per i repository standard, scarichi un pacchetto direttamente dal repository.
Per un repository remoto, scarichi una copia memorizzata nella cache del pacchetto e delle sue dipendenze. Se non esiste una copia memorizzata nella cache, il repository remoto scarica il pacchetto dall'origine upstream e lo memorizza nella cache prima di fornirtelo. Puoi verificare che il repository remoto abbia recuperato i pacchetti dall'origine upstream visualizzando l'elenco dei pacchetti nel repository.
Per un repository virtuale, Artifact Registry cerca il pacchetto richiesto nei repository upstream.
- I repository remoti upstream scaricheranno e memorizzeranno nella cache il pacchetto richiesto se non esiste una copia memorizzata nella cache. I repository virtuali pubblicano solo i pacchetti richiesti, non li archiviano.
- Se richiedi una versione disponibile in più di un repository upstream, Artifact Registry sceglie un repository upstream da utilizzare in base alle impostazioni di priorità configurate per il repository virtuale.
Ad esempio, considera un repository virtuale con le seguenti impostazioni di priorità per i repository upstream:
main-repo
: priorità impostata su100
secondary-repo1
: priorità impostata su80
.secondary-repo2
: priorità impostata su80
.test-repo
: priorità impostata su20
.
main-repo
ha il valore di priorità più alto, quindi il repository virtuale lo cerca sempre per primo.
Sia secondary-repo1
che secondary-repo2
hanno la priorità impostata su 80
. Se un
pacchetto richiesto non è disponibile in main-repo
, Artifact Registry
esamina questi repository. Poiché hanno entrambi lo stesso valore di priorità,
Artifact Registry può scegliere di pubblicare un pacchetto da uno dei due repository
se la versione è disponibile in entrambi.
test-repo
ha il valore di priorità più basso e pubblicherà un elemento archiviato se
nessuno degli altri repository a monte lo ha.
Eliminazione di pacchetti e versioni
Modalità del repository: standard, remoto
Puoi eliminare un pacchetto e tutte le sue versioni oppure una versione specifica.
- Una volta eliminato un pacchetto, non puoi annullare l'azione.
- Per i repository remoti, viene eliminata solo la copia memorizzata nella cache del pacchetto. L'origine in upstream non è interessata. Se elimini un pacchetto memorizzato nella cache, Artifact Registry lo scaricherà e lo memorizzerà di nuovo nella cache la prossima volta che il repository riceverà una richiesta per la stessa versione del pacchetto.
Prima di eliminare un pacchetto o una versione del pacchetto, verifica di aver comunicato o risolto eventuali dipendenze importanti.
Per eliminare un pacchetto:
Console
Apri la pagina Repository nella console Google Cloud .
Nell'elenco dei repository, fai clic sul repository appropriato.
La pagina Pacchetti elenca i pacchetti nel repository.
Seleziona il pacchetto da eliminare.
Fai clic su ELIMINA.
Nella finestra di dialogo di conferma, fai clic su ELIMINA.
gcloud
Esegui questo comando:
gcloud artifacts packages delete PACKAGE \
[--repository=REPOSITORY] [--location=LOCATION] [--async]
Sostituisci quanto segue:
PACKAGE
è il nome del pacchetto nel repository.REPOSITORY
è il nome del repository. Se hai configurato un repository predefinito, puoi omettere questo flag per utilizzare quello predefinito.-
LOCATION
è la posizione regionale o multiregionale del repository. Utilizza questo flag per visualizzare i repository in una posizione specifica. Se hai configurato una località predefinita, puoi omettere questo flag per utilizzare quella predefinita.
Il flag --async
fa sì che il comando ritorni immediatamente,
senza attendere il completamento dell'operazione in corso.
Per eliminare le versioni di un pacchetto:
Console
Apri la pagina Repository nella console Google Cloud .
Nell'elenco dei repository, fai clic sul repository appropriato.
La pagina Pacchetti elenca i pacchetti nel repository.
Fai clic su un pacchetto per visualizzarne le versioni.
Seleziona le versioni da eliminare.
Fai clic su ELIMINA.
Nella finestra di dialogo di conferma, fai clic su ELIMINA.
gcloud
Esegui questo comando:
gcloud artifacts versions delete VERSION \
--package=PACKAGE \
[--repository=REPOSITORY] [--location=LOCATION] \
[--async]
Sostituisci quanto segue:
VERSION
è il nome della versione da eliminare.PACKAGE
è il nome del pacchetto nel repository.REPOSITORY
è il nome del repository. Se hai configurato un repository predefinito, puoi omettere questo flag per utilizzare quello predefinito.-
LOCATION
è la posizione regionale o multiregionale del repository. Utilizza questo flag per visualizzare i repository in una posizione specifica. Se hai configurato una località predefinita, puoi omettere questo flag per utilizzare quella predefinita.
Il flag --async
fa sì che il comando ritorni immediatamente,
senza attendere il completamento dell'operazione in corso.
Passaggi successivi
- Scopri di più sulla gestione dei pacchetti Node.js
- Scopri di più sulla gestione dei pacchetti Python
- Scopri di più sulla gestione delle immagini container
- Scaricare singoli file all'interno di un pacchetto