Java と Bitbucket Pipelines

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

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

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

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

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

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

For instance, you can use Maven 3.3.9 (current version as of writing) by specifying it at the beginning of your bitbucket-pipelines.yml file.

image: maven:3.3.9 pipelines: default: - step: script: - mvn -version

You can check your bitbucket-pipelines.yml file with our online validator.

Java および JDK バージョン

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

image: maven:3.2.5-jdk-7

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

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

Once you have selected your Docker image, running tests is just including the appropriate Maven commands in your pipelines script section. Below is an example.

image: maven:3.3.9 pipelines: default: - step: script: - mvn -B verify # -B batch mode makes Maven less verbose

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

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

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

bitbucket-pipelines.yml

image: maven:3.3.9 pipelines: branches: main: - step: script: - bash configure-maven.sh - mvn -B verify

configure-maven.sh

#!/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 のカスタマイズ

Making more advanced changes to the default settings.xml with sed can be quite painful, so it may be easier to commit your own settings.xml to your Bitbucket repository. Then you can reference it using Maven's -s flag.

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 スクリプトは、リポジトリにコミットする前に実行可能にしておくことをおすすめします。

chmod +x gradlew

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

bitbucket-pipelines.yml

image: openjdk:8 pipelines: default: - step: script: - bash ./gradlew build

Remember, you can check your bitbucket-pipelines.yml file with our online validator.

さらにヘルプが必要ですか?

アトラシアン コミュニティをご利用ください。