Pubblicare elementi con Gradle

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019

Con Azure Artifacts è possibile gestire in modo efficiente le dipendenze da un singolo feed, archiviando vari tipi di pacchetti in un'unica posizione. Azure Artifacts consente agli sviluppatori di pubblicare e usare pacchetti da origini diverse e di condividerli in base alle impostazioni di visibilità del feed. Questo articolo illustra come connettersi a un feed di Azure Artifacts e pubblicare i pacchetti usando Gradle.

Prerequisiti

Creare un token di accesso personale

Per eseguire l'autenticazione con il feed, è prima necessario creare un token di accesso personale con ambiti di lettura e scrittura per la creazione di pacchetti:

  1. Accedere all'organizzazione di Azure DevOps e passare al progetto.

  2. Selezionare Impostazioni utente e quindi token di accesso personali.

    Screenshot che mostra come individuare il pulsante del token di accesso personale.

  3. Selezionare Nuovo token e compilare i campi obbligatori. Assicurarsi di selezionare l'ambito di lettura e scrittura per la creazione di pacchetti>.

  4. Al termine, fare clic su Crea. Copiare il token e salvarlo in una posizione sicura, perché sarà necessario per il passaggio successivo.

    Screenshot che illustra come creare un nuovo token di accesso personale con ambiti di lettura e scrittura per la creazione di pacchetti.

Impostazione progetto

Prima di configurare il progetto, assicurarsi che Gradle sia installato e che sia stato aggiunto il plug-in Impostazioni Maven al file build.gradle come indicato di seguito:

plugins {
  id 'maven-publish'
}

Configurare build.gradle

  1. Se un file build.gradle non esiste nella radice del progetto, creare un nuovo file e denominarlo build.gradle.

  2. Aggiungere la sezione seguente al file build.gradle all'interno dei repository e dei contenitori publishing.repository:

    maven {
        url 'https://pkgs.dev.azure.com/<ORGANIZATION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/maven/v1'            //for organization-scoped feeds use this format: 'https://pkgs.dev.azure.com/<ORGANIZATION_NAME>/_packaging/<FEED_NAME>/maven/v1'
        name '<FEED_NAME>'
        credentials(PasswordCredentials)
        authentication {
            basic(BasicAuthentication)
        }
    }
    

Ecco un esempio dell'aspetto del file build.gradle :

repositories {
    mavenCentral()

    maven {
    url 'https://pkgs.dev.azure.com/<ORGANIZATION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/maven/v1'                //for organization-scoped feeds use this format: 'https://pkgs.dev.azure.com/<ORGANIZATION_NAME>/_packaging/<FEED_NAME>/maven/v1'
    name '<FEED_NAME>'
    credentials(PasswordCredentials)
    authentication {
        basic(BasicAuthentication)
        }
    }
}

publishing {
    publications {
        library(MavenPublication) {
            from components.java
        }
    }

    repositories {
        maven {
        url 'https://pkgs.dev.azure.com/<ORGANIZATION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/maven/v1'           //for organization-scoped feeds use this format: 'https://pkgs.dev.azure.com/<ORGANIZATION_NAME>/_packaging/<FEED_NAME>/maven/v1'
        name '<FEED_NAME>'
        credentials(PasswordCredentials)
        authentication {
            basic(BasicAuthentication)
            }
        }
    }
}

Configurare gradle.properties

  1. Aprire il file gradle.properties che si trova nella directory gradle della home directory (~/.gradle/gradle.properties). Se il file non esiste, crearne uno nuovo.

  2. Aggiungere il frammento di codice seguente, sostituendo i segnaposto con il nome del feed, il nome dell'organizzazione e il token di accesso personale creato in precedenza.

    # Substitute FEED_NAME with the same name specified as the 'name' of the maven repository in build.gradle.
    # The value of the username is arbitrary but should not be blank.
    [FEED_NAME]Username=[ORGANIZATION_NAME]
    [FEED_NAME]Password=[PERSONAL_ACCESS_TOKEN]
    

Pubblicare i pacchetti

  1. Eseguire il comando seguente nella directory del progetto per pubblicare il pacchetto nel feed:

    gradle publish
    

Screenshot che mostra un pacchetto pubblicato correttamente nel feed.