Azure Pipelines で Maven の成果物を発行する
Azure Pipelines を使用すると、Maven パッケージを Azure Artifacts フィードやパブリック レジストリに発行し、パイプライン成果物として発行できます。
プロジェクトの設定
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>
settings.xml ファイルを次のように構成します。 プレースホルダーを組織名、プロジェクト名、個人用アクセストークで置き換えます。
<server> <id>PROJECT-NAME</id> <username>ORGANIZATION-NAME</username> <password>PERSONAL-ACCESS-TOKEN</password> </server>
[パッケージ化読み取りおよび書き込み] スコープを使って個人用アクセス トークンを作成し、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'
フィードにパッケージを発行する
パッケージを 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'
Q&A
Q: MavenAuthenticate で認証するにはどうすればよいですか?
A: MavenAuthenticate タスクを使って、組織の内外で Maven フィードで認証できます。 詳細については、以下の例を参照してください。