Questa pagina descrive l'aggiunta, la visualizzazione e l'eliminazione dei pacchetti Java.
Se vuoi utilizzare sbt come strumento di build 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 dei client Scala.
Prima di iniziare
- Se il repository di destinazione non esiste, creane uno nuovo.
- Verifica di disporre delle autorizzazioni richieste per il repository.
- Verifica di aver configurato l'autenticazione. Se utilizzi un token di accesso, assicurati di aggiornarlo prima di connetterti al repository.
- (Facoltativo) Configura le impostazioni predefinite 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 pacchetti o file nei pacchetti:
Lettore Artifact Registry (
roles/artifactregistry.reader
) -
Scarica o installa pacchetti:
Artifact Registry Reader (
roles/artifactregistry.reader
) -
Aggiungi pacchetti a un repository:
Scrittore Artifact Registry (
roles/artifactregistry.writer
) -
Elimina pacchetti:
Amministratore repository Artifact Registry (
roles/artifactregistry.repoAdmin
)
Per ulteriori informazioni sulla concessione dei ruoli, consulta Gestisci 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à repository: Standard
Per aggiungere pacchetti al repository:
Maven
Utilizza mvn deploy
e mvn release
per aggiungere pacchetti al repository.
Per eseguire 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 principali come descritto nelle istruzioni di autenticazione.
Utilizza mvn deploy:deploy-file
per caricare artefatti creati al di fuori di
Maven.
Ad esempio, questo comando di esempio esegue il deployment di example/external.jar
e del relativo file di 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 la sezione 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à repository: standard, remoto
To view packages and package versions using the Google Cloud console
or gcloud
:
Console
Open the Repositories page in the Google Cloud console.
In the repository list, click the appropriate repository.
The Packages page lists the packages in the repository.
Click a package to view versions of the package.
gcloud
To list packages in a repository, run the following command:
gcloud artifacts packages list [--repository=REPOSITORY] [--location=LOCATION]
Replace the following:
REPOSITORY
is the name of the repository. If you configured a default repository, you can omit this flag to use the default.-
LOCATION
is the regional or multi-regional location of the repository. If you configured a default location, then you can omit this flag to use the default.
To view versions of a package, run the following command:
gcloud artifacts versions list --package=PACKAGE \
[--repository=REPOSITORY] [--location=LOCATION]
Replace the following:
PACKAGE
is the ID of the package or fully qualified identifier for the package.REPOSITORY
is the name of the repository. If you configured a default repository, then you can omit this flag to use the default.-
LOCATION
is the regional or multi-regional location of the repository. Use this flag to view repositories in a specific location. If you configured a default location, then you can omit this flag to use the default.
Per i repository remoti, l'elenco restituito deve includere tutte le dipendenze dirette e transitive.
Elenco dei file
Modalità repository: standard, remoto
Puoi elencare i file in un repository, i file in tutte le versioni di un pacchetto specificato o i file 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 posizione predefiniti quando sono configurati i valori predefiniti:
gcloud artifacts files list
Per elencare i file in un progetto, un repository e una località specifici, esegui il comando:
gcloud artifacts files list \
--project=PROJECT \
--repository=REPOSITORY \
--location=LOCATION
Per elencare i file per tutte le versioni di un pacchetto specifico:
gcloud artifacts files list \
--project=PROJECT \
--repository=REPOSITORY \
--location=LOCATION \
--package=PACKAGE
Per elencare i file per 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 posizione regionale o multiregionale del repository.PROJECT
: il tuo Google Cloud ID progetto. Se l'ID progetto contiene due punti (:
), consulta Progetti basati sul dominio.REPOSITORY
: il nome del repository in cui è archiviata l'immagine.PACKAGE
: il nome del pacchetto.VERSION
: la versione del pacchetto.
Esempi
Considera le seguenti informazioni sul pacchetto:
- Progetto:
my-project
- Repository:
my-repo
- Posizione del repository:
us-west1
- Pacchetto:
my-app
Il comando seguente 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à 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.
Crea 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 saperne di più sulle dipendenze di Gradle, consulta la documentazione di Gradle.
dependencies { compile group: 'group', name: 'artifact', version: '1.0' }
Crea 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 relative dipendenze. Se non esiste una copia memorizzata nella cache, il repository remoto scarica il pacchetto dalla sorgente upstream e lo memorizza nella cache prima di fornirtelo. Puoi verificare che il repository remoto abbia recuperato i pacchetti dalla sorgente 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 scaricano e memorizzano nella cache il pacchetto richiesto se non esiste una copia memorizzata nella cache. I repository virtuali forniscono 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
esegue la ricerca in questi repository. Poiché hanno 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 servirà un artefatto archiviato se
nessuno degli altri repository upstream lo contiene.
Eliminazione di pacchetti e versioni
Modalità repository: standard, remoto
Puoi eliminare un pacchetto e tutte le relative versioni oppure eliminare 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 a monte non è interessata. Se elimini un pacchetto memorizzato nella cache, Artifact Registry lo scaricherà e memorizzerà nuovamente nella cache la volta successiva che il repository riceve una richiesta per la stessa versione del pacchetto.
Before you delete a package or package version, verify that any you have communicated or addressed any important dependencies on it.
To delete a package:
Console
Open the Repositories page in the Google Cloud console.
In the repository list, click the appropriate repository.
The Packages page lists the packages in the repository.
Select the package that you want to delete.
Click DELETE.
In the confirmation dialog box, click DELETE.
gcloud
Run the following command:
gcloud artifacts packages delete PACKAGE \
[--repository=REPOSITORY] [--location=LOCATION] [--async]
Replace the following:
PACKAGE
is the name of the package in the repository.REPOSITORY
is the name of the repository. If you configured a default repository, then you can omit this flag to use the default.-
LOCATION
is the regional or multi-regional location of the repository. Use this flag to view repositories in a specific location. If you configured a default location, then you can omit this flag to use the default.
The --async
flag causes the command to return immediately,
without waiting for the operation in progress to complete.
To delete versions of a package:
Console
Open the Repositories page in the Google Cloud console.
In the repository list, click the appropriate repository.
The Packages page lists the packages in the repository.
Click a package to view versions of that package.
Select versions that you want to delete.
Click DELETE.
In the confirmation dialog box, click DELETE.
gcloud
Run the following command:
gcloud artifacts versions delete VERSION \
--package=PACKAGE \
[--repository=REPOSITORY] [--location=LOCATION] \
[--async]
Replace the following:
VERSION
is the name of the version to delete.PACKAGE
is the name of the package in the repository.REPOSITORY
is the name of the repository. If you configured a default repository, then you can omit this flag to use the default.-
LOCATION
is the regional or multi-regional location of the repository. Use this flag to view repositories in a specific location. If you configured a default location, then you can omit this flag to use the default.
The --async
flag causes the command to return immediately,
without waiting for the operation in progress to complete.
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