Publicera Maven-artefakter med Azure Pipelines

Med Azure Pipelines kan du publicera dina Maven-paket till Azure Artifacts-flöden, offentliga register eller som en pipelineartefakt.

Konfigurera projektet

  1. Lägg till följande kodfragment i avsnitten repositories och distributionManagement i pom.xml-filen. Ersätt platshållarna med organisationens namn, projektnamnet och flödesnamnet.

    <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. Konfigurera filen settings.xml enligt följande. Ersätt platshållarna med ditt organisationsnamn, ditt projektnamn och din personliga åtkomsttoken.

    <server>
      <id>PROJECT-NAME</id>
      <username>ORGANIZATION-NAME</username>
      <password>PERSONAL-ACCESS-TOKEN</password>
    </server>
    
  3. Skapa en personlig åtkomsttoken med paketera läs- och skrivomfattning och klistra in den i taggen password i filen settings.xml .

Skapa din kod

I det här exemplet använder vi Maven-uppgiften för att skapa projektet med 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'

Publicera paket till din pipeline

I följande exempel visas hur du publicerar artefakten så att den släpps i pipelinen. Använd aktiviteten Kopiera filer för att kopiera paketen till en målmapp och använd sedan Publicera byggartefakter för att publicera dina byggartefakter till 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.

Publicera paket i feeden

Om du vill publicera paketet i en Azure Artifacts-feed använder du Maven-uppgiften för att distribuera artefakten till feeden.

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

Vanliga frågor och svar

F: Hur autentiserar du med MavenAuthenticate?

S: Du kan använda MavenAuthenticate-uppgiften för att autentisera med Maven-feeds i och utanför organisationen. Mer information finns i exemplen nedan: