Java と Bitbucket Pipelines

 

このガイドでは、Maven または Gradle をビルド ツールとして使用し、Bitbucket Pipelines を使用して、Docker コンテナで Java ソフトウェア プロジェクトをビルドおよびテストする方法について説明します。

実際に動作するパイプラインを持つデモ リポジトリをインポートしたい場合、デモ用の java リポジトリをご参照ください。

注意: Bitbucket Pipelines には、アカウントごとに 50 分の無料利用時間が含まれています (本記事の執筆時点での情報)。自身のワークスペースでは、その月のアカウント使用量 (分単位) を [設定] > [プランの詳細] をクリックして確認できます。


手動でセットアップしたい場合、構成の大部分は Pipelines がビルドを定義するために使用する bitbucket-pipelines.yml ファイル内で行います。

Maven プロジェクトのビルドとテスト

Docker で Maven のバージョンを指定する

Bitbucket Pipelines は、構成ファイルの最初に指定したイメージを使用し、すべてのビルドを Docker コンテナで実行します。Docker Hub にあるいずれかの公式 Maven Docker イメージを使用することで、Bitbucket Pipelines で簡単に Maven を使用できます。

たとえば Maven 3.3.9 (この記事の執筆時点での最新バージョン) を bitbucket-pipelines.yml ファイルの先頭で指定して使用できます。

1 2 3 4 5 6 image: maven:3.3.9 pipelines: default: - step: script: - mvn -version

オンライン バリデーターを使用して bitbucket-pipelines.yml ファイルをチェックすることができます。

Java および JDK バージョン

既定では、Maven イメージには Java JDK の最新の公式バージョンが含まれますが、特定の Maven バージョンを使用することで別のバージョンを指定することもできます。以下は、JDK 1.7 を搭載した Maven 3.2.5 の Docker イメージの使用例です。

1 image: maven:3.2.5-jdk-7

利用可能な Maven/JDK バージョンと対応する image タグの一覧については、https://hub.docker.com/r/library/maven/ をご参照ください。

Maven を使用したビルドとテストの実行

Docker イメージを選択したら、Pipelines スクリプトに適切な Maven コマンドを含めるだけでテストを実行できます。例:

1 2 3 4 5 6 image: maven:3.3.9 pipelines: default: - step: script: - mvn -B verify # -B batch mode makes Maven less verbose

Maven のプライベート リポジトリ

Maven のプライベート リポジトリにアクセスするには、Maven の既定の settings.xml (/usr/share/maven/conf/settings.xml の Docker イメージにあります) を上書きする必要があります。

この例を使用する前に、2 つのセキュアな環境変数MAVEN_USERNAME および MAVEN_PASSWORD を設定して、これらの値を Pipelines 構成に安全に渡すことができるようにします。

bitbucket-pipelines.yml

1 2 3 4 5 6 7 8 9 image: maven:3.3.9 pipelines: branches: main: - step: script: - bash configure-maven.sh - mvn -B verify

configure-maven.sh

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 #!/bin/bash sed -i~ "/<servers>/ a\ <server>\ <id>private-repo</id>\ <username>${MAVEN_USERNAME}</username>\ <password>${MAVEN_PASSWORD}</password>\ </server>" /usr/share/maven/conf/settings.xml sed -i "/<profiles>/ a\ <profile>\ <id>private-repo</id>\ <activation>\ <activeByDefault>true</activeByDefault>\ </activation>\ <repositories>\ <repository>\ <id>private-repo</id>\ <url>https://example.com/path/to/maven/repo/</url>\ </repository>\ </repositories>\ <pluginRepositories>\ <pluginRepository>\ <id>private-repo</id>\ <url>https://example.com/path/to/maven/repo/</url>\ </pluginRepository>\ </pluginRepositories>\ </profile>" /usr/share/maven/conf/settings.xml

Maven の settings.xml のカスタマイズ

sed を使用して既定の settings.xmlにさらに高度な変更を加えることは非常に難しいため、独自の settings.xmlを Bitbucket リポジトリにコミットすることをおすすめします。その後、Maven の -s フラグを使用してそれを参照できます。

1 2 3 4 5 6 image: maven:3.3.9 pipelines: default: - step: script: - mvn -s settings.xml # e.g. with settings.xml in the root of the project

Gradle プロジェクトのビルドとテスト

リポジトリに Gradle Wrapper を追加する

アトラシアン (および Gradle) では、Gradle プロジェクトをビルドする際に、Gradle Wrapper をリポジトリにコミットすることを推奨しています。

Gradle Wrapper は、次の 2 つを保証します。

  • プロジェクトをビルドするための、ビルド環境への Gradle の手動インストールは不要

  • プロジェクトは常に同じ Gradle バージョンでビルドされる

wrapper スクリプトは、リポジトリにコミットする前に実行可能にしておくことをおすすめします。

1 chmod +x gradlew

その後、wrapper を使用して Gradle プロジェクトをビルドできます。

bitbucket-pipelines.yml

1 2 3 4 5 6 image: openjdk:8 pipelines: default: - step: script: - bash ./gradlew build

アトラシアンのオンライン バリデーターでご使用の bitbucket-pipelines.yml ファイルをチェックすることができます。

最終更新日 2021年06月 9日)
次でキャッシュ 7:12 PM on Oct 21, 2021 |

その他のヘルプ