次の方法で共有


Azure Pipelines で Maven の成果物を発行する

Azure Pipelines を使用すると、Maven パッケージを Azure Artifacts フィードやパブリック レジストリに発行し、パイプライン成果物として発行できます。

プロジェクトの設定

  1. pom.xml ファイルの repositories セクションと distributionManagement セクションに次のスニペットを追加します。 プレースホルダーを組織名、プロジェクト名、フィード名で置き換えます。

    <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 タグに貼り付けます。

コードをビルドする

この例では、Azure Pipelines で Maven タスクを使ってプロジェクトをビルドします。

- 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 フィードで認証できます。 詳細については、以下の例を参照してください。