Maven-artefacten publiceren met Azure Pipelines

Met behulp van Azure Pipelines kunt u uw Maven-pakketten publiceren naar Azure Artifacts-feeds, openbare registers of als pipeline-artefact.

Uw project instellen

  1. Voeg het volgende fragment toe aan de repositories secties en distributionManagement secties in uw pom.xml-bestand . Vervang de tijdelijke aanduidingen door de naam van uw organisatie, de projectnaam en de naam van uw 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. Configureer het bestand settings.xml als volgt. Vervang de tijdelijke aanduidingen door de naam van uw organisatie, uw projectnaam en uw persoonlijke toegangstoken.

    <server>
      <id>PROJECT-NAME</id>
      <username>ORGANIZATION-NAME</username>
      <password>PERSONAL-ACCESS-TOKEN</password>
    </server>
    
  3. Maak een persoonlijk toegangstoken met het lees- en schrijfbereik van de verpakking en plak deze in de password tag in het bestand settings.xml .

Uw code bouwen

In dit voorbeeld gebruiken we de Maven-taak om het project te bouwen met 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'

Pakketten publiceren naar uw pipeline

In het volgende voorbeeld ziet u hoe u uw artefact publiceert om in uw pijplijn te vallen . Gebruik de taak Bestanden kopiëren om uw pakketten naar een doelmap te kopiëren en gebruik vervolgens Build-artefacten publiceren om uw buildartefacten naar Azure Pipelines te publiceren.

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

Pakketten publiceren naar uw feed

Als u uw pakket wilt publiceren naar een Azure Artifacts-feed, gebruikt u de Maven-taak om uw artefact in uw feed te implementeren.

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

Q&A

V: Hoe kan ik verifiëren met MavenAuthenticate?

A: U kunt de MavenAuthenticate-taak gebruiken om te verifiëren met Maven-feeds binnen en buiten uw organisatie. Zie de onderstaande voorbeelden voor meer informatie: