Publikowanie artefaktów maven za pomocą usługi Azure Pipelines

Przy użyciu usługi Azure Pipelines można publikować pakiety narzędzia Maven w kanałach informacyjnych usługi Azure Artifacts, publicznych rejestrach lub jako artefakt potoku.

konfigurowanie projektu

  1. Dodaj następujący fragment kodu do repositories sekcji i distributionManagement w pliku pom.xml . Zastąp symbole zastępcze nazwą swojej organizacji, nazwą projektu i nazwą swojego kanału informacyjnego.

    <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. Skonfiguruj plik settings.xml w następujący sposób. Zastąp symbole zastępcze nazwą organizacji, nazwą projektu i osobistym tokenem dostępu.

    <server>
      <id>PROJECT-NAME</id>
      <username>ORGANIZATION-NAME</username>
      <password>PERSONAL-ACCESS-TOKEN</password>
    </server>
    
  3. Utwórz osobisty token dostępu z zakresem odczytu i zapisu pakietu i wklej go do tagu password w pliku settings.xml.

Tworzenie kodu

W tym przykładzie używamy zadania Maven do skompilowania projektu za pomocą usługi 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'

Publikowanie pakietów w potoku

Poniższy przykład ilustruje sposób publikowania artefaktu w celu porzucenia potoku. Za pomocą zadania Kopiowanie plików skopiuj pakiety do folderu docelowego, a następnie użyj polecenia Publish Build Artifacts (Publikuj artefakty kompilacji), aby opublikować artefakty kompilacji w usłudze 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.

Publikowanie pakietów w kanale informacyjnym

Aby opublikować pakiet w kanale informacyjnym usługi Azure Artifacts, użyj zadania Maven, aby wdrożyć artefakt w kanale informacyjnym.

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

Pytania i odpowiedzi

Pyt.: Jak uwierzytelniać się za pomocą protokołu MavenAuthenticate?

Uwierzytelnianie: Możesz użyć zadania MavenAuthenticate do uwierzytelniania za pomocą źródeł danych Maven wewnątrz i poza organizacją. Aby uzyskać więcej informacji, zobacz poniższe przykłady: