Apache Maven 및 App Engine 플러그인 사용

Apache Maven은 자바용 빌드 자동화 도구로,

App Engine은 앱을 빌드하고 App Engine에 배포하는 데 사용할 수 있는 Maven 플러그인을 제공합니다. 이 플러그인에서는 엔터프라이즈 애플리케이션 아카이브(EAR) 프로젝트를 지원하지 않습니다.

시작하기 전에

  1. 다음 명령어를 실행하여 Maven 설치 여부와 버전을 확인합니다.

    mvn -v
    

    Maven이 설치된 경우 Apache Maven으로 시작하는 정보의 긴 문자열 다음에 3.9.1와 같은 버전 번호가 표시됩니다.

  2. Maven 3.9.1 이상이 설치되어 있지 않으면 다음 명령어를 실행합니다.

    1. Maven 3.9.1 이상을 다운로드합니다.
    2. Maven 3.9.1 이상을 설치합니다.
  3. 아직 수행하지 않았으면 여기에 설명된 단계에 따라 gcloud CLI를 다운로드하고, Google Cloud 프로젝트를 만들고, App Engine 앱을 초기화합니다.

  4. gcloud CLI app-engine-java 구성요소를 설치합니다.

    gcloud components install app-engine-java
    

App Engine Maven 플러그인 추가

App Engine Maven 플러그인을 사용하려면 프로젝트 pom.xml 파일의 plugins 섹션에 다음 줄을 추가합니다.

<plugins>
   <plugin>
     <groupId>com.google.cloud.tools</groupId>
     <artifactId>appengine-maven-plugin</artifactId>
     <version>2.8.1</version>
   </plugin>
   <plugin>
     <groupId>org.eclipse.jetty</groupId>
     <artifactId>jetty-maven-plugin</artifactId>
     <version>9.4.56.v20240826</version>
   </plugin>
</plugins>
App Engine 플러그인에는 WAR 파일을 만들지 않고 신속하게 애플리케이션을 테스트할 수 있는 Jetty Maven 플러그인이 포함되어 있습니다.

Jetty Maven 플러그인을 사용하여 로컬에서 앱 테스트

개발 단계에서는 언제든지 Jetty Maven 플러그인을 호출하여 개발 서버에서 앱을 실행하고 테스트할 수 있습니다.

개발 서버에서 앱을 실행하려면 다음 안내를 따르세요.

  1. 아직 앱을 빌드하지 않았다면 앱을 빌드합니다.

    mvn package
    
  2. 디렉터리를 프로젝트의 최상위 수준으로 변경하고(예시: myapp) Maven을 호출하여 앱을 실행합니다.

    mvn jetty:run
    
  3. 서버가 시작되기를 기다렸다가 브라우저에서 http://localhost:8080/으로 이동하여 앱에 액세스합니다.

  4. Control+C를 눌러서 앱과 개발 서버를 종료합니다.

앱 빌드 및 배포

프로젝트 pom.xml 파일에 App Engine Maven 플러그인을 추가한 후에 다음 명령어를 사용하여 앱을 빌드하고 배포할 수 있습니다.

mvn package appengine:deploy -Dapp.deploy.projectId=PROJECT_ID

PROJECT_ID를 Google Cloud 프로젝트의 ID로 바꿉니다. pom.xml 파일에 이미 프로젝트 ID가 지정된 경우 실행할 명령어에 -Dapp.deploy.projectId 속성을 포함하지 않아도 됩니다.

package 목표는 앱을 빌드 및 패키징하고 appengine:deploy 목표는 다음을 수행합니다.

  1. 새로운 앱 버전에 고유한 버전 ID를 생성합니다.

  2. App Engine에 새 버전을 배포합니다.

  3. 모든 트래픽을 새 버전으로 라우팅합니다.

배포 기본값 변경

appengine:deploy 명령어에서 매개변수를 전달하여 기본 배포 동작을 변경할 수 있습니다. 예를 들어 다음 명령어는 pom.xml 파일에 정의된 서비스를 특정 Google Cloud 프로젝트에 배포하고, 서비스에 커스텀 버전 ID를 할당하고, 새 버전에 대한 자동 트래픽 라우팅을 사용 중지합니다.

mvn appengine:deploy -Dapp.deploy.projectId=PROJECT_ID -Dapp.deploy.version=VERSION_ID -Dapp.deploy.promote=False

appengine:deploy 명령어를 사용하여 cron.yaml, dispatch.yaml, index.yaml과 같은 구성 파일을 배포할 수도 있습니다.

자세한 내용은 appengine:deploy참조를 확인하세요.

다음 단계