Pubblicare artefatti Maven con Azure Pipelines

Con Azure Pipelines è possibile pubblicare i pacchetti Maven in feed di Azure Artifacts, i registri pubblici o come artefatto della pipeline.

Impostare il progetto

  1. Aggiungere il frammento di codice seguente alle repositories sezioni e distributionManagement nel file pom.xml . Sostituire i segnaposto con il nome dell'organizzazione, il nome del progetto e il nome del feed.

    <repository>
      <id>MavenDemo</id>
      <url>https://pkgs.dev.azure.com/ORGANIZATION-NAME/PROJECT-NAME/_packaging/FEED-NAME/maven/v1</url>
      <releases>
        <enabled>true</enabled>
      </releases>
      <snapshots>
        <enabled>true</enabled>
      </snapshots>
    </repository>
    
  2. Configurare il file settings.xml come indicato di seguito. Sostituire i segnaposto con il nome dell'organizzazione, il nome del progetto e il token di accesso personale.

    <server>
      <id>PROJECT-NAME</id>
      <username>ORGANIZATION-NAME</username>
      <password>PERSONAL-ACCESS-TOKEN</password>
    </server>
    
  3. Creare un token di accesso personale con ambito di lettura e scrittura del pacchetto e incollarlo nel password tag nel file settings.xml .

Compilare il codice

In questo esempio si usa l'attività Maven per compilare il progetto con Azure Pipelines.

- task: Maven@3
  inputs:
    mavenPomFile: 'my-app/pom.xml'    // Path to your pom file
    mavenOptions: '-Xmx3072m'
    javaHomeOption: 'JDKVersion'
    jdkVersionOption: '1.8'
    jdkArchitectureOption: 'x64'
    publishJUnitResults: true
    testResultsFiles: '**/surefire-reports/TEST-*.xml'
    goals: 'package'

Pubblicare pacchetti nella pipeline

L'esempio seguente illustra come pubblicare l'artefatto da eliminare nella pipeline. Usare l'attività Copia file per copiare i pacchetti in una cartella di destinazione, quindi usare Pubblica artefatti di compilazione per pubblicare gli artefatti di compilazione in Azure Pipelines.

- task: CopyFiles@2
  inputs:
    Contents: '**'
    TargetFolder: '$(build.artifactstagingdirectory)'
- task: PublishBuildArtifacts@1
  inputs:
    PathtoPublish: '$(Build.ArtifactStagingDirectory)'
    ArtifactName: 'drop'
    publishLocation: 'Container'

A screenshot showing the build artifact published to drop in Azure Pipelines.

Pubblicare pacchetti nel feed

Per pubblicare il pacchetto in un feed di Azure Artifacts, usare l'attività Maven per distribuire l'artefatto nel feed.

- task: Maven@3
  inputs:
    mavenPomFile: 'my-app/pom.xml'
    mavenOptions: '-Xmx3072m'
    javaHomeOption: 'JDKVersion'
    jdkVersionOption: '1.8'
    jdkArchitectureOption: 'x64'
    mavenAuthenticateFeed: true
    publishJUnitResults: false
    testResultsFiles: '**/surefire-reports/TEST-*.xml'
    goals: 'deploy'

A screenshot showing the build artifact published to a feed.

Domande e risposte

D: Come eseguire l'autenticazione con MavenAuthenticate?

R: È possibile usare l'attività MavenAuthenticate per eseguire l'autenticazione con i feed Maven all'interno e all'esterno dell'organizzazione. Per altri dettagli, vedere gli esempi seguenti: