Публикация артефактов Maven с помощью Azure Pipelines

С помощью Azure Pipelines можно публиковать пакеты Maven в веб-каналах Azure Artifacts, общедоступных реестрах или в качестве артефакта конвейера.

Настройка проекта

  1. Добавьте следующий фрагмент repositories кода в файл pom.xml и distributionManagement разделов. Замените заполнители именем организации, именем проекта и именем веб-канала.

    <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. Настройте файл settings.xml следующим образом. Замените заполнители именем организации, именем проекта и личным маркером доступа.

    <server>
      <id>PROJECT-NAME</id>
      <username>ORGANIZATION-NAME</username>
      <password>PERSONAL-ACCESS-TOKEN</password>
    </server>
    
  3. Создайте личный маркер доступа с помощью упаковки и записи область и вставьте его в password тег в файле settings.xml.

Сборка кода

В этом примере мы используем задачу Maven для создания проекта с помощью 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'

Публикация пакетов в конвейер

В следующем примере показано, как опубликовать артефакт для удаления в конвейере. Используйте задачу копирования файлов, чтобы скопировать пакеты в целевую папку, а затем использовать артефакты сборки для публикации артефактов сборки в 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.

Публикация пакетов в веб-канале

Чтобы опубликовать пакет в веб-канале Артефактов Azure, используйте задачу Maven для развертывания артефакта в веб-канале.

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

Вопросы и ответы

Вопрос. Как пройти проверку подлинности с помощью MavenAuthenticate?

Ответ. Вы можете использовать задачу MavenAuthenticate для проверки подлинности с помощью веб-каналов Maven внутри организации и за ее пределами. Дополнительные сведения см. в приведенных ниже примерах: