Azure Pipelines를 사용하여 Maven 아티팩트 게시

Azure Pipelines를 사용하여 Maven 패키지를 Azure Artifacts 피드, 공용 레지스트리에 게시하거나 파이프라인 아티팩트로 게시할 수 있습니다.

프로젝트 설정

  1. pom.xml 파일의 섹션 및 distributionManagement 섹션에 다음 코드 repositories 조각을 추가합니다. 자리 표시자를 조직 이름, 프로젝트 이름 및 피드 이름으로 바꿉니다.

    <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. 패키징 읽기 및 쓰기 범위를 사용하여 개인용 액세스 토큰을 만들고 settings.xml 파일의 password 태그에 붙여넣습니다.

코드 빌드

이 예제에서는 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 Artifacts 피드에 패키지를 게시하려면 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.

Q&A

Q: MavenAuthenticate를 사용하여 인증하는 방법

A: MavenAuthenticate 작업을 사용하여 조직 내부 및 외부에서 Maven 피드를 인증할 수 있습니다. 자세한 내용은 아래 예제를 참조하세요.