App Engine Maven 플러그인 목표 및 매개변수

프로젝트에 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.7.0</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은 유효한 Container Registry 이름이어야 합니다(예: gcr.io/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