App Engine Gradle 플러그인 작업 및 속성

프로젝트에 App Engine 플러그인을 추가하면 App Engine 표준 환경에서 애플리케이션에 대해 다음과 같은 App Engine 관련 Gradle 작업을 수행할 수 있습니다.

작업 설명
tasks 설치된 태스크에 대한 도움말 정보를 표시합니다.
appengineCloudSdkLogin 계정의 전역 gcloud CLI 상태를 설정합니다.
appengineDeploy 애플리케이션을 스테이징하고 App Engine에 배포합니다.
appengineDeployAll 유효한 모든 yaml 구성을 App Engine에 동시에 스테이징하고 배포합니다.
appengineDeployCron cron.yaml 구성 파일을 스테이징하고 App Engine에 배포합니다.
appengineDeployDispatch dispatch.yaml 구성 파일을 스테이징하고 App Engine에 배포합니다.
appengineDeployDos dos.yaml 구성 파일을 스테이징하고 App Engine에 배포합니다.
appengineDeployIndex index.yaml 구성 파일을 스테이징하고 App Engine에 배포합니다.
appengineDeployQueue queue.yaml 구성 파일을 스테이징하고 App Engine에 배포합니다.
appengineRun App Engine 개발 서버를 실행합니다. 서버를 실행하는 동안 appengine-web.xml이 변경되었는지 지속적으로 확인합니다. 변경되면 서버가 애플리케이션을 다시 로드합니다. appengine-web.xml 변경으로 인해 애플리케이션을 중지했다가 다시 시작할 필요는 없습니다.
appengineStage 배포용 애플리케이션 디렉터리를 생성합니다.
appengineStart App Engine 개발 서버의 실행을 비동기적으로 시작한 다음 명령줄로 돌아갑니다. 이 목표가 실행될 경우 동작은 Gradle이 계속해서 태스크를 처리하고 서버가 가동 및 실행된 후 종료된다는 점을 제외하면 목표 실행과 동일합니다.
appengineStop 실행 중인 App Engine 웹 개발 서버를 중지합니다.
explodeWar WAR 파일을 빌드 디렉토리에 해체합니다.

모든 작업 목록을 보려면 다음을 사용하세요.

gradle tasks

Gradle을 설정하고 사용하는 방법에 대한 자세한 내용은 App Engine Gradle 사용을 참조하세요.

태스크 속성

gradle.build 파일의 콘텐츠는 빌드를 설명하는 규칙 집합입니다. 이 파일은 빌드를 설명하기 위해 Groovy 언어 기반의 도메인 특정 언어로 작성됩니다.

각 태스크에는 아래와 같이 사용 가능한 속성이 연결되어 있습니다. gradle.build 파일에서 구성 닫기, 태스크, 속성을 사용하여 이러한 속성을 지정할 수 있습니다.

아래 예시를 참조하세요.

  • 플러그인의 구성 닫기는 appengine입니다.
  • 태스크는 run입니다.
  • port 속성은 8080으로 설정됩니다.
appengine {  // App Engine tasks configuration
  run {      // local (dev_appserver) configuration (standard environments only)
    port = 8080                 // default
  }

  deploy {   // deploy configuration
    stopPreviousVersion = true  // default - stop the current version
    promote = true              // default - & make this the current version
  }
}

몇 가지 속성만 설정하면 되는 경우 한 줄로 설정할 수 있습니다.

  appengine.run.port = 8888

각 작업에 사용할 수 있는 속성 목록은 다음 섹션을 참조하세요.

appengineStage

task(stage)

배포용 애플리케이션 디렉터리를 생성합니다. appengineDeploy 태스크에서 appengineStage를 사용합니다.

다음 속성을 사용할 수 있습니다.

속성 설명
compileEncoding JSP를 컴파일할 때 사용할 문자 인코딩입니다. App Engine 표준 환경에서 실행 중인 애플리케이션에만 적용됩니다.
deleteJsps 컴파일 후 JSP 소스 파일을 삭제합니다. App Engine 표준 환경에서 실행 중인 애플리케이션에만 적용됩니다.
disableJarJsps JSP에서 생성된 클래스 추가를 사용 중지합니다. App Engine 표준 환경에서 실행 중인 애플리케이션에만 적용됩니다.
disableUpdateCheck gcloud CLI 업데이트 확인을 사용 중지합니다.
enableJarClasses WEB-INF/classes content를 Jar로 만듭니다. App Engine 표준 환경에서 실행 중인 애플리케이션에만 적용됩니다.
useMtimeFileWatcher 소스 코드 변경을 탐지하기 위해 mtime 폴링을 사용합니다. 분산 파일 시스템을 사용하여 원격 머신에서 코드를 수정하는 경우 유용합니다.
enableJarSplitting 10MB를 초과하는 JAR 파일을 작은 조각으로 분할합니다. App Engine 표준 환경에만 적용됩니다.
enableQuickstart Eclipse Jetty 빠른 시작을 사용하여 서블릿 주석을 처리합니다. App Engine 표준 환경에만 적용됩니다.
jarSplittingExcludes 모든 JAR 파일에서 쉼표로 구분된 접미사 목록과 일치하는 파일을 제외합니다. App Engine 표준 환경에서 실행 중인 애플리케이션에만 적용됩니다.
sourceDirectory 필수. 컴파일된 웹 애플리케이션 파일 또는 해체된 WAR의 위치입니다. 스테이징 소스로 사용됩니다. App Engine 표준 환경에만 적용됩니다. 기본값은 build/exploded-${gradle-module-name}입니다.
stagingDirectory 필수. 애플리케이션을 스테이징할 디렉터리로, 기본값은 build/staged-app입니다.

appengineRun

작업(실행)

App Engine 개발용 웹 서버를 실행합니다. 서버를 실행하는 동안 appengine-web.xml이 변경되었는지 지속적으로 확인합니다. 변경된 경우 서버가 애플리케이션을 새로 고칩니다. 즉, appengine-web.xml 변경으로 인해 애플리케이션을 중지했다가 다시 시작할 필요가 없습니다.

다음 속성을 사용할 수 있으며 이 중에서 일부는 로컬 개발 서버 명령줄 플래그에 해당합니다.

속성 설명
environment 로컬 개발 서버로 보내기 위한 환경 변수 맵. 예: [key1: "value1", key2: "value2"]
jvmFlags 앱의 인스턴스를 시작할 때 자바 명령어에 전달할 추가 인수입니다. 두 번 이상 지정할 수 있습니다. 예를 들면 -Xmx1024m -Xms256m입니다.
host 애플리케이션 서비스를 결합해야 하는 호스트 이름. 기본값은 localhost입니다.
port 애플리케이션 서비스를 결합해야 하는 가장 낮은 포트입니다. 기본값은 8080입니다.
serverVersion 시작할 서버 버전. 옵션은 '1'과 '2-alpha'입니다. 기본값은 '1'입니다.
services 필수. WEB-INF/web.xml이 포함된 디렉터리가 있는 디렉터리의 경로이며 기본값은 build/exploded-app입니다.
startSuccessTimeout appengineStart 사용 시 백그라운드에서 개발용 앱 서버 시작을 기다릴 시간(초)입니다.

appengineDeploy

task(deploy)

애플리케이션을 스테이징하고 App Engine에 배포합니다.

속성 설명
appEngineDirectory 구성별 배포(appengineDeployCron 등)를 배포하는 .yaml 구성 파일(크론, 색인 등) 위치입니다. 표준 애플리케이션의 경우 .xml 구성 파일은 스테이징 중에 .yaml로 변환되며 build/staged-app/WEB-INF/appengine-generated에 배치됩니다.
bucket 배포와 연결된 파일을 스테이징하는 데 사용되는 Google Cloud Storage 버킷. 이 인수가 지정되지 않으면 애플리케이션의 기본 버킷이 사용됩니다.
imageUrl 특정 Docker 이미지를 사용하여 배포합니다. Docker URL은 유효한 Google Container Registry 호스트 이름 중 하나여야 합니다.
projectId 이 호출에 사용할 Google Cloud Platform 프로젝트 ID. projectId를 지정하거나 GCLOUD_CONFIG를 설정하여 gcloud 구성 상태의 프로젝트 설정을 사용할 수 있습니다.
promote 배포된 버전을 승격하여 모든 트래픽을 수신합니다. 기본값은 True입니다.
server 연결할 App Engine 서버입니다. 일반적으로 이 값은 변경할 필요가 없습니다.
stopPreviousVersion 모든 트래픽을 수신하는 새 버전을 배포할 때 이전에 실행 중인 버전을 중지합니다.
version 이 배포에서 생성되거나 대체되는 앱의 버전입니다. 버전을 지정하지 않으면 자동으로 생성됩니다.

전역 속성

속성설명
tools.cloudSdkHome gcloud CLI 위치를 구성하는 선택적 속성입니다. 이 속성을 지정하지 않으면 플러그인이 자동으로 gcloud CLI를 다운로드합니다.
tools.cloudSdkVersion 원하는 gcloud CLI 버전을 지정하는 선택적 매개변수입니다.