프로젝트에 gcloud CLI 기반 App Engine Maven 플러그인을 추가하면 다음 App Engine 관련 Maven 목표를 사용할 수 있습니다.
| 목표 | 설명 | 
|---|---|
| appengine:cloudSdkLogin | 계정의 전역 gcloud CLI 상태를 설정합니다. | 
| appengine:deploy | 애플리케이션을 스테이징하고 App Engine에 배포합니다. | 
| appengine:deployAll | 유효한 모든 yaml 구성을 App Engine에 동시에 스테이징하고 배포합니다. | 
| appengine:deployCron | cron.yaml구성 파일을 스테이징하고 App Engine에 배포합니다. | 
| appengine:deployDispatch | dispatch.yaml구성 파일을 스테이징하고 App Engine에 배포합니다. | 
| appengine:deployDos | dos.yaml구성 파일을 스테이징하고 App Engine에 배포합니다. | 
| appengine:deployIndex | index.yaml구성 파일을 스테이징하고 App Engine에 배포합니다. | 
| appengine:deployQueue | queue.yaml구성 파일을 스테이징하고 App Engine에 배포합니다. | 
| appengine:help | App Engine Maven 플러그인에 대한 도움말 정보를 표시합니다. | 
| appengine:run | App Engine 개발 서버를 실행합니다. 서버를 실행하는 동안 appengine-web.xml이 변경되었는지 지속적으로 확인합니다. 변경되면 서버가 애플리케이션을 다시 로드합니다.appengine-web.xml변경으로 인해 애플리케이션을 중지했다가 다시 시작할 필요는 없습니다. 이 목표는 기존 번들 서비스에 대해 지원됩니다. | 
| appengine:stage | 배포용 애플리케이션 디렉터리를 생성합니다. | 
| appengine:start | App Engine 개발 서버의 실행을 비동기적으로 시작한 후 명령줄로 돌아갑니다. 이 목표가 실행될 경우 동작은 Maven이 목표를 계속 처리하고 서버가 가동 및 실행된 후 종료된다는 점을 제외하고 run목표와 동일합니다. 이 목표는 기존 번들 서비스에 대해 지원됩니다. | 
| appengine:stop | 실행 중인 App Engine 웹 개발 서버를 중지합니다. 이 목표는 기존 번들 서비스에 대해 지원됩니다. | 
Maven 설정 및 사용 방법에 대한 자세한 내용은 Maven 사용을 참조하세요.
매개변수 사용
각 목표에는 pom.xml 파일에서 지정할 수 있는 관련 매개변수가 있습니다.
예를 들면 다음과 같습니다.
<plugins>
   <plugin>
     <groupId>com.google.cloud.tools</groupId>
     <artifactId>appengine-maven-plugin</artifactId>
     <version>2.8.1</version>
     <configuration>
       <deploy.stopPreviousVersion>true</deploy.stopPreviousVersion>
       <cloudSdkHome>/usr/foo/path/to/cloudsdk</cloudSdkHome>
     </configuration>
  </plugin>
</plugins>명령줄에서 -D[USER_PROPERTY]=[PARAMETER_VALUE] 패턴에 따라 구성 매개변수를 정의할 수도 있습니다.
예를 들어 애플리케이션을 스테이징할 디렉터리를 다음과 같이 지정합니다.
mvn appengine:stage -Dapp.stage.stagingDirectory=[YOUR_STAGING_DIRECTORY]
각 목표에서 사용할 수 있는 매개변수 목록은 다음 섹션을 참조하세요.
appengine:deploy
애플리케이션을 스테이징하고 App Engine에 배포합니다.
다음 매개변수를 사용할 수 있으며 일부 매개변수는 gcloud app deploy 명령줄 플래그 또는 gcloud app services 명령줄 플래그 에 해당합니다.
| 매개변수 | 설명 | 사용자 속성 | 
|---|---|---|
| appEngineDirectory | app.yaml과 지원되는 기타 App Engine 구성 파일이 포함된 디렉터리입니다. 기본값은${basedir}/src/main/appengine입니다. | app.stage.appEngineDirectory | 
| artifact | 배포할 JAR 또는 WAR 아카이브 위치입니다. 기본값은 ${project.build.directory}/${project.build.finalName}.${project.packaging}입니다. | app.stage.artifact | 
| bucket | 배포에 연결된 파일을 스테이징하는 데 사용되는 Cloud Storage 버킷입니다. 이 인수가 지정되지 않으면 애플리케이션의 기본 버킷이 사용됩니다. | app.deploy.bucket | 
| cloudSdkPath | Google Cloud CLI의 위치를 구성하는 선택적 매개변수입니다. 기본값은 PATH 또는 표준 설치 위치에서 자동으로 검색됩니다. | cloudSdkPath | 
| deployables | 배포하려는 구성 또는 서비스용 YAML 파일입니다.
          기본값은 스테이징 디렉터리에 있는 app.yaml파일입니다.
          이 파일을 찾을 수 없는 경우 스테이징 디렉터리에서 필요한 구성 파일(예:app.yaml)의 자동 생성을 시도합니다. | app.deploy.deployables | 
| dockerDirectory | Dockerfile 및 기타 Docker 리소스가 포함된 디렉터리입니다.
        기본값은 ${basedir}/src/main/docker/입니다. | app.stage.dockerDirectory | 
| imageUrl | 특정 Docker 이미지를 사용하여 배포합니다. ImageUrl은 유효한 Artifact Registry 이름이어야 합니다(예 :docker.pkg.dev/foo, 여기서foo는 이미지의 이름). | app.deploy.imageUrl | 
| projectId | 이 호출에 사용할 Google Cloud 프로젝트 이름입니다.
          기본값은 gcloud를 초기화할 때 선택된 현재 프로젝트입니다. | app.deploy.projectId | 
| promote | 배포된 버전을 승격하여 모든 트래픽을 수신합니다. 기본값은 True입니다. | app.deploy.promote | 
| server | 연결할 App Engine 서버입니다. 일반적으로 이 값은 변경할 필요가 없습니다. | app.deploy.server | 
| stagingDirectory | 필수 항목입니다. 애플리케이션을 스테이징할 디렉터리로, 기본값은 ${project.build.directory}/appengine-staging입니다. | app.stage.stagingDirectory | 
| stopPreviousVersion | 모든 트래픽을 수신하는 새 버전을 배포할 때 이전에 실행하고 있던 버전을 중지합니다. | app.deploy.stopPreviousVersion | 
| version | 이 배포에서 만들어지거나 대체되는 앱의 버전입니다. 버전을 지정하지 않는 경우 자동으로 생성됩니다. | app.deploy.version | 
appengine:help
App Engine Maven 플러그인에 대한 도움말 정보를 표시합니다. 매개변수 세부정보를 표시하려면 다음을 호출하세요.
mvn appengine:help -Ddetail=true -Dgoal=[GOAL_NAME]
다음 매개변수를 사용할 수 있습니다.
| 매개변수 | 설명 | 사용자 속성 | 
|---|---|---|
| detail | true인 경우 각 목표에 설정할 수 있는 모든 속성을 표시합니다. 기본값은 False입니다. | detail | 
| goal | 도움말을 표시하는 목표의 이름입니다. 지정하지 않으면 모든 목표가 표시됩니다. | goal | 
| indentSize | 들여쓰기 수준당 공백 수입니다. 양수여야 합니다.
        기본값은 2입니다. | indentSize | 
| lineLength | 표시줄의 최대 길이입니다. 양수여야 합니다.
        기본값은 80입니다. | lineLength | 
appengine:run
App Engine 개발용 웹 서버를 실행합니다. 서버를 실행하는 동안 appengine-web.xml이 변경되었는지 지속적으로 확인합니다. 변경된 경우 서버가 애플리케이션을 새로 고칩니다. 즉, appengine-web.xml의 변경을 이유로 애플리케이션을 중지했다가 다시 시작할 필요가 없습니다.
다음 매개변수를 사용할 수 있습니다. 일부 매개변수는 로컬 개발 서버 명령줄 플래그에 해당합니다.
| 속성 | 설명 | 플러그인 구성 | 명령줄 구성 | 
|---|---|---|---|
| automaticRestart | 웹 애플리케이션 파일(리소스 또는 클래스 파일)이 변경되면 인스턴스를 자동으로 다시 시작합니다. 컴파일된 클래스 파일이 올바른 웹 앱 애플리케이션 디렉터리에 배치되도록 Maven을 구성하려면 Maven outputDirectory 설정을 변경해야 합니다. <build> <outputDirectory> target/${project.artifactId}-${project.version}/WEB-INF/classes </outputDirectory> ... <plugins> ... | devserver.automaticRestart | app.devserver.automaticRestart | 
| environment | 로컬 개발 서버로 보내기 위한 환경 변수 맵.
      예를 들면 다음과 같습니다. <environment> <key1>value1</key1> <key2>value2</key2> </environment> | devserver.environment | app.devserver.environment | 
| jvmFlags | 앱의 인스턴스를 시작할 때 자바 명령어에 전달할 추가 인수입니다. 두 번 이상 지정할 수 있습니다. 예를 들면 다음과 같습니다. <jvmFlags> <jvmFlag>-Xmx1024m</jvmFlag> <jvmFlag>-Xms256m</jvmFlag> </jvmFlags> | devserver.jvmFlags | app.devserver.jvmFlags | 
| host | 애플리케이션 서비스를 결합해야 하는 호스트 이름. 기본값은 localhost입니다. | devserver.host | app.devserver.host | 
| port | 애플리케이션 서비스를 결합해야 하는 가장 낮은 포트입니다. 기본값은 8080입니다. | devserver.port | app.devserver.port | 
| serverVersion | 시작할 서버 버전. 옵션은 '1'과 '2-alpha'입니다. 기본값은 '1'입니다. | devserver.serverVersion | app.devserver.serverVersion | 
| services | 필수 항목입니다. WEB-INF/web.xml이 포함된 디렉터리가 있는 디렉터리의 경로이며 기본값은build/exploded-app입니다. | devserver.services | app.devserver.services | 
appengine:stage
배포용 애플리케이션 빌드 디렉터리를 생성합니다.
다음 매개변수를 사용할 수 있습니다.
| 매개변수 | 설명 | 사용자 속성 | 
|---|---|---|
| appEngineDirectory | app.yaml과 지원되는 기타 App Engine 구성 파일이 포함된 디렉터리입니다. 기본값은${basedir}/src/main/appengine입니다. | app.stage.appEngineDirectory | 
| artifact | 배포할 JAR 또는 WAR 아카이브 위치입니다. 기본값은 ${project.build.directory}/${project.build.finalName}.${project.packaging}입니다. | app.stage.artifact | 
| cloudSdkPath | gcloud CLI의 위치를 구성하는 선택적 매개변수입니다. | cloudSdkPath | 
| dockerDirectory | Dockerfile 및 기타 Docker 리소스가 포함된 디렉터리입니다.
      기본값은 ${basedir}/src/main/docker/${basedir}/src/main/docker/입니다. | app.stage.dockerDirectory | 
| stagingDirectory | 필수 항목입니다. 애플리케이션을 스테이징할 디렉터리로, 기본값은 ${project.build.directory}/appengine-staging입니다. | app.stage.stagingDirectory | 
appengine:start
App Engine 개발용 웹 서버를 비동기적으로 실행한 후 명령줄로 돌아갑니다. 이 목표가 실행될 경우 동작은 Maven이 목표를 계속 처리하고 서버가 가동 및 실행된 후 종료된다는 점을 제외하고 run 목표와 동일합니다.
다음 매개변수를 사용할 수 있습니다.
| 속성 | 설명 | 플러그인 구성 | 명령줄 구성 | 
|---|---|---|---|
| environment | 로컬 개발 서버로 보내기 위한 환경 변수 맵.
      예를 들면 다음과 같습니다. <environment> <key1>value1</key1> <key2>value2</key2> </environment> | devserver.environment | app.devserver.environment | 
| jvmFlags | 앱의 인스턴스를 시작할 때 자바 명령어에 전달할 추가 인수입니다. 두 번 이상 지정할 수 있습니다. 예를 들면 다음과 같습니다. <jvmFlags> <jvmFlag>-Xmx1024m</jvmFlag> <jvmFlag>-Xms256m</jvmFlag> </jvmFlags> | devserver.jvmFlags | app.devserver.jvmFlags | 
| host | 애플리케이션 서비스를 결합해야 하는 호스트 이름. 기본값은 localhost입니다. | devserver.host | app.devserver.host | 
| port | 애플리케이션 서비스를 결합해야 하는 가장 낮은 포트입니다. 기본값은 8080입니다. | devserver.port | app.devserver.port | 
| serverVersion | 시작할 서버 버전. 옵션은 '1'과 '2-alpha'입니다. 기본값은 '1'입니다. | devserver.serverVersion | app.devserver.serverVersion | 
| services | 필수 항목입니다. WEB-INF/web.xml이 포함된 디렉터리가 있는 디렉터리의 경로이며 기본값은build/exploded-app입니다. | devserver.services | app.devserver.services | 
| startSuccessTimeout | appengineStart 사용 시 백그라운드에서 개발용 앱 서버 시작을 기다릴 시간(초)입니다. | devserver.startSuccessTimeout | app.devserver.startSuccessTimeout | 
appengine:stop
실행 중인 App Engine 웹 개발 서버를 중지합니다.
다음 매개변수를 사용할 수 있습니다.
| 매개변수 | 설명 | 플러그인 구성 | 명령줄 구성 | 
|---|---|---|---|
| host | 관리 서버를 결합해야 하는 호스트 이름. 기본값은 localhost입니다. | devserver.adminHost | app.devserver.adminHost | 
| port | 관리 서버를 결합해야 하는 포트. 기본값은 8000입니다. | devserver.adminPort | app.devserver.adminPort | 
| cloudSdkHome | gcloud CLI의 위치를 구성하는 선택적 매개변수입니다. 이 속성을 지정하지 않으면 플러그인이 자동으로 gcloud CLI를 다운로드합니다. | cloudSdkHome | cloudSdkHome |