Veröffentlichen von Maven-Artefakten mit Azure Pipelines

Mithilfe von Azure Pipelines können Sie Ihre Maven-Pakete in Azure Artifacts-Feeds, öffentlichen Registrierungen oder als Pipelineartefakt veröffentlichen.

Einrichten des Projekts

  1. Fügen Sie den Abschnitten repositories und distributionManagement in Ihrer pom.xml-Datei den folgenden Codeschnipsel hinzu. Ersetzen Sie die Platzhalter durch den Namen Ihrer Organisation, den Projektnamen und den Feednamen.

    <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. Konfigurieren Sie Ihre settings.xml-Datei wie folgt. Ersetzen Sie die Platzhalter durch den Namen Ihrer Organisation, den Projektnamen und Ihr persönliches Zugriffstoken.

    <server>
      <id>PROJECT-NAME</id>
      <username>ORGANIZATION-NAME</username>
      <password>PERSONAL-ACCESS-TOKEN</password>
    </server>
    
  3. Erstellen Sie ein persönliches Zugriffstoken mit dem Verpacken von Lese- und Schreibbereichen und fügen Sie es in das password-Tag in Ihrer settings.xml-Datei ein.

Erstellen des Codes

In diesem Beispiel verwenden wir die Maven-Aufgabe, um das Projekt mit Azure Pipelines zu erstellen.

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

Veröffentlichen von Paketen in Ihrer Pipeline

Im folgenden Beispiel wird gezeigt, wie Sie Ihr Artefakt veröffentlichen, um es in Ihrer Pipeline abzulegen. Verwenden Sie die Aufgabe Dateien kopieren, um Ihre Pakete in einen Zielordner zu kopieren, und verwenden Sie anschließend Buildartefakte veröffentlichen, um Ihre Buildartefakte in Azure Pipelines zu veröffentlichen.

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

Veröffentlichen von Paketen in Ihrem Feed

Um Ihr Paket in einem Azure Artifacts-Feed zu veröffentlichen, verwenden Sie die Maven-Aufgabe, um Ihr Artefakt in Ihrem Feed bereitzustellen.

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

Fragen und Antworten

F: Wie authentifiziert man sich mit MavenAuthenticate?

A: Sie können die MavenAuthenticate-Aufgabe verwenden, um sich innerhalb und außerhalb Ihrer Organisation mit Maven-Feeds zu authentifizieren. Weitere Informationen finden Sie in den folgenden Beispielen: