프로젝트에 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 은 유효한 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 |