Bitbucket Pipelines - Java


개요

이 가이드에서는 Maven 또는 Gradle을 빌드 도구로 사용하여 Docker 컨테이너에서 Java 소프트웨어 프로젝트를 빌드하고 테스트하기 위해 Bitbucket Pipelines를 사용하는 방법을 보여줍니다.

Bitbucket Pipelines는 작성 시점에 계정 당 무료 50 분을 포함합니다. 작업 영역(Workspace)에서 Settings > Plan details를 클릭하여 해당 월의 계정 사용 시간을 확인할 수 있습니다

파이프라인을 직접 설정는 경우, 파이프라인이 빌드를 정의하는데 사용하는 bitbucket-pipelines.yml 파일에서 대부분을 구성하게 됩니다.

Maven 프로젝트 빌드 및 테스트

Docker로 Maven 버전 지정

Bitbucket Pipelines는 구성 파일의 시작 부분에 지정한 이미지를 사용하여 Docker 컨테이너의 모든 빌드를 실행합니다. Docker Hub 의 official Maven Docker images 중 하나를 사용하여 Bitbucket Pipelines와 함께 Maven을 쉽게 사용할 수 있습니다 

예를 들어, bitbucket-pipelines.yml 파일의 시작 부분에 Maven:3.3.9을 지정하여 사용할 수 있습니다.

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

online validator로 bitbucket-pipelines.yml 파일의 유효성을 확인할 수 있습니다.

Java 및 JDK 버전

기본적으로 Maven 이미지에는 Java JDK의 최신 버전이 포함되지만, 특정 Maven 버전을 사용하여 다른 버전을 지정할 수 있습니다. 다음은 JDK 1.7과 Maven 3.2.5로 구성 된 Docker 이미지를 사용하는 예제입니다.

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

사설 Maven 저장소

사설 Maven 저장소에 액세스하려면 Docker 이미지에 있는 /usr/share/maven/conf/settings.xml의 Maven 기본 settings.xml을 재정의해야합니다  .

이 예제를 사용하기 전에 MAVEN_USERNAMEMAVEN_PASSWORsecure variables로구성하여, 파이프라인에 값을 안전하게 전달할 수 있습니다.

bitbucket-pipelines.yml

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

configure-maven.sh

Maven settings.xml 커스텀

sed를 사용하여 기본 settings.xml을 변경하는 것 보다 자신의 settings.xml을 Bitbucket 저장소에 커밋하는 것이 더 쉬울 수 있습니다. 그런 다음 Maven의 -s 플래그를 사용하여 참조 할 수 있습니다.

Gradle 프로젝트 빌드 및 테스트

저장소에 Gradle Wrapper 추가

Gradle 프로젝트를 빌드하는데 권장되는 방식은 Gradle Wrapper를 저장소에 커밋하는 것입니다.

Gradle Wrapper는 다음 두 가지를 보장합니다.

  • 빌드 환경은 프로젝트를 빌드하기 위해 Gradle을 수동으로 설치할 필요가 없습니다.

  • 프로젝트는 항상 동일한 Gradle 버전으로 빌드됩니다.

저장소에 커밋하기 전에 Wrapper 스크립트를 실행 가능하게 만드는 것이 좋습니다.

그런 다음 Wrapper를 사용하여 Gradle 프로젝트를 빌드 할 수 있습니다.

bitbucket-pipelines.yml

online validator로 bitbucket-pipelines.yml 파일의 유효성을 확인할 수 있습니다.