자바 애플리케이션 빌드 및 테스트

컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요.

이 페이지에서는 Cloud Build를 사용하여 자바 기반 애플리케이션을 빌드 및 테스트하고, Artifact Registry의 Maven 저장소에 빌드된 아티팩트를 저장하고, 빌드 출처 정보를 생성하는 방법을 설명합니다.

시작하기 전에

maven 이미지 사용

Docker Hub에서 maven 이미지를 사용하여 자바 애플리케이션을 빌드하도록 Cloud Build를 구성할 수 있습니다.

maven 이미지에서 작업을 수행하려면 이미지 URL을 지정하고 빌드 구성 파일의 name 필드에 태그로 지정된 이미지 버전을 지정합니다. 이미지 태그를 지정하지 않으면 Cloud Build에 기본적으로 latest 이미지가 사용됩니다. Cloud Build는 이미지의 기본 진입점을 사용하여 name에 지정된 이미지를 시작합니다. 기본 진입점을 재정의하고 maven을 진입점으로 호출하려면 entrypoint 필드에 mvn을 지정합니다.

다음 빌드 구성 파일은 maven 이미지에 대해 entrypoint를 지정하고 빌드 도구 버전을 출력합니다.

          steps:
          - name: maven:3.3-jdk-8
            entrypoint: mvn
            args: ['--version']

Java 빌드 구성

  1. 프로젝트 루트 디렉터리에 cloudbuild.yaml이라는 빌드 구성 파일을 만듭니다.

  2. 테스트 실행: maven은 종속 항목을 다운로드하고, 애플리케이션을 빌드하고, 소스 코드에 지정된 모든 테스트를 실행하는 maven test를 제공합니다. 빌드 단계의 args 필드는 인수 목록을 가져와서 name 필드로 참조되는 이미지에 전달합니다.

    빌드 구성 파일에서 maven 내에서 test를 호출하기 위해 args 필드에 test를 추가합니다.

         steps:
         - name: maven:3.3-jdk-8
           entrypoint: mvn
           args: ['test']
    
  3. 패키지 애플리케이션: maven 이미지에 대해 JAR 파일에 애플리케이션을 패키지화하려면 args 필드에 package 명령어를 지정합니다. package 명령어는 /workspace/target/에 JAR 파일을 빌드합니다.

    다음 빌드 단계는 자바 애플리케이션을 패키지화합니다.

         steps:
         - name: maven:3.3-jdk-8
           entrypoint: mvn
           args: ['package','-Dmaven.test.skip=true']
    
  4. Artifact Registry에 업로드:

    Cloud Build는 Cloud Build 구성 파일에서 mavenArtifacts 필드를 사용하여 Artifact Registry에 아티팩트를 업로드할 때 독립형 Maven 패키지에 대해 SLSA(Supply chain Levels for Software Artifacts) 빌드 출처 정보를 생성합니다.

    빌드 구성 파일에서 mavenArtifacts 필드를 사용하여 애플리케이션 파일 경로 및 Maven 저장소를 Artifact Registry에 지정합니다.

    artifacts:
      mavenArtifacts:
      - repository: 'https://location-maven.pkg.dev/project-id/repository-name'
        path: 'app-path'
        artifact_id: 'build-artifact'
        group_id: 'group-id'
        version: 'version'
    

    다음 값을 바꿉니다.

    • location: Artifact Registry에서 저장소의 위치입니다.
    • project-id: Artifact Registry 저장소가 포함된 Google Cloud 프로젝트의 ID입니다.
    • repository-name: Artifact Registry에서 Maven 저장소의 이름입니다.
    • app-path: 패키징된 애플리케이션의 경로입니다.
    • build-artifact: 빌드 단계에서 생성한 패키지 파일의 이름입니다.
    • group-id: 모든 Maven 프로젝트에서 com.mycompany.app 형식으로 프로젝트를 고유하게 식별합니다. 자세한 내용은 Maven 이름 지정 규칙 안내를 참조하세요.
    • version: 1.0.1과 같이 숫자와 점으로 된 형식의 애플리케이션 버전 번호입니다.
  5. 선택사항: 리전 빌드의 출처 사용 설정

    리전 빌드를 사용하는 경우 빌드 구성 파일의 optionsrequestedVerifyOption 필드를 추가합니다. 값을 VERIFIED로 설정하여 출처 메타데이터 생성을 사용 설정합니다. requestedVerifyOption: VERIFIED를 추가하지 않으면 Cloud Build가 전역 빌드에 대해서만 출처를 생성합니다.

    options:
      requestedVerifyOption: VERIFIED
    
  6. 빌드 시작: 수동 또는 빌드 트리거를 사용하여 시작합니다. 빌드가 완료되면 Artifact Registry에서 저장소 세부정보를 확인할 수 있습니다.

    또한 소프트웨어 공급망 보호를 돕기 위해 빌드 출처 메타데이터를 확인하고 출처를 검증할 수 있습니다.

다음 단계