Publicación de artefactos de Maven con Azure Pipelines

Con Azure Pipelines, es posible publicar los paquetes de Maven en fuentes de Azure Artifacts, registros públicos o como artefacto de canalización.

Configuración del proyecto

  1. Agregue el siguiente fragmento de código a las secciones repositories y distributionManagement del archivo pom.xml. Reemplace los marcadores de posición por el nombre de la organización, el nombre del proyecto y el nombre de la fuente.

    <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. Configure el archivo settings.xml como se indica a continuación. Reemplace los marcadores de posición por el nombre de la organización, el nombre del proyecto y el token de acceso personal.

    <server>
      <id>PROJECT-NAME</id>
      <username>ORGANIZATION-NAME</username>
      <password>PERSONAL-ACCESS-TOKEN</password>
    </server>
    
  3. Cree un token de acceso personal con el ámbito de lectura y escritura de empaquetado y péguelo en la etiqueta password del archivo settings.xml.

Compilar el código

En este ejemplo se usa la tarea Maven para compilar el proyecto 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'

Publicación de paquetes en la canalización

En el ejemplo siguiente se muestra cómo publicar el artefacto para colocarlo en la canalización. Use la tarea Copiar archivos para copiar los paquetes en una carpeta de destino y, después, use Publicar artefactos de compilación para publicar los artefactos de compilación en 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.

Publicación de paquetes en la fuente

Para publicar el paquete en una fuente de Azure Artifacts, use la tarea Maven para implementar el artefacto en la fuente.

- 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.

Preguntas y respuestas

P: ¿Cómo puedo autenticarme con MavenAuthenticate?

R: Puede usar la tarea MavenAuthenticate para autenticarse con fuentes de Maven dentro y fuera de su organización. Consulte los ejemplos siguientes para obtener más detalles: