JenkinsとArtifactoryでMavenデプロイを並列に

Parallel Maven Deployment with Jenkins and Artifactory

MavenリポジトリとしてArtifactoryを使いたいと思う理由はたくさんあります。例えば、Mavenのアーティファクトにカスタムプロパティでタグを付けることができるため、特定の条件に基づいて後からアーティファクトを検索することができます。Artifactoryはアーティファクトに関するビルドメタデータを保存し、pomファイルを変更することなく、Mavenビルドで使用されるリポジトリをコントロールすることができます。この記事ではJenkinsでのMavenデプロイという特定のケースに焦点を当てます。

並列なデプロイによりMavenでのビルド時間を減らす

JFrogは最近、Jenkins Artifactoryプラグインバージョン3.6.1をリリースしました。このリリースにはMavenのデプロイに関する重要な機能強化が含まれています。Mavenアーティファクトのデプロイ時にスレッド数が設定できるようになりました。

これにより、大量のアーティファクトを作成してデプロイする場合は特に、ビルド時間を大幅に短縮することができます。

すでにプラグインを使用してビルドしている場合、Artifactoryプラグインをアップグレードすることで、ビルドの設定変更を行わなくてもデプロイ時間が以前の3分の1に短縮されるでしょう。Jenkinsはデフォルトでデプロイに3つのスレッドを使用しますが、パイプラインのコード内からこのデフォルトを変更するオプションもあります。

すでにArtifactoryパイプラインAPIを使用している場合、Mavenデプロイを宣言型構文のスクリプトに次のセクションを含める必要があります。スレッドの新しいプロパティがサポートされていることに注目してください。

rtMavenDeployer (
id: 'deployer-unique-id',
serverId: 'Artifactory-1',
releaseRepo: 'libs-release-local',
snapshotRepo: 'libs-snapshot-local',
threads: 6 // The default value is 3
)

スクリプト構文を使用している場合は、以下のようにデプロイ元のスレッド数を設定することができます。

rtMaven.deployer.threads = 6

JenkinsとArtifactoryを使用したMavenビルドの詳細をより詳しくご覧になり、Mavenビルドにぜひ最新バージョンのJenkins Artifactoryプラグインをご使用ください。