지원되는 최신 자바 버전으로 마이그레이션하고 앱에서 기존 번들 서비스를 사용하지 않는 경우 App Engine 자바 8 웹 애플리케이션을 실행 가능한 JAR 파일로 다시 패키징해야 합니다.
애플리케이션에는 PORT
환경 변수(일반적으로 8081)로 지정된 포트에서 HTTP 요청에 응답하는 웹 서버를 시작하는 Main
클래스가 있어야 합니다.
예를 들면 다음과 같습니다.
WAR 마이그레이션 예시(자바 11)
다음 안내에서는 자바 11 런타임에서 실행할 App Engine 자바 8 hello-world
애플리케이션을 JAR로 다시 패키징하는 방법을 보여줍니다.
마이그레이션은 appengine-simple-jetty-main
아티팩트를 사용합니다. 이는 WAR 파일을 로드하고 앱을 실행 가능한 JAR 파일로 패키징하는 간단한 Jetty 웹 서버가 포함된 Main
클래스를 제공합니다.
삽입된 Jetty 서버 아티팩트를 로컬 머신에 클론합니다.
git clone https://github.com/GoogleCloudPlatform/java-docs-samples
또는 zip 파일로 샘플을 다운로드하고 압축을 풀 수 있습니다.
샘플 코드가 있는 디렉토리로 변경합니다.
cd java-docs-samples/appengine-java11/appengine-simple-jetty-main/
종속 항목을 로컬로 설치합니다.
mvn install
다음 코드를 프로젝트
pom.xml
파일에 추가합니다.appengine-simple-jetty-main
종속 항목:maven-dependency
플러그인: App Engine은${build.directory}/appengine-staging
디렉터리에 있는 파일을 배포합니다. App Engine은 빌드에maven-dependency
플러그인을 추가하여 지정된 종속 항목을 올바른 폴더에 설치합니다.
app.yaml
파일에entrypoint
요소를 만들어appengine-simple-jetty-main
객체를 호출하고 WAR 파일을 인수로 전달합니다. 예를 들어helloworld-servlet
샘플app.yaml
파일을 참조하세요.애플리케이션을 로컬에서 실행하려면 다음 안내를 따르세요.
애플리케이션을 패키징합니다.
mvn clean package
WAR 파일을 인수로 사용하여 서버를 시작합니다.
예를 들어
java-docs-samples/appengine-java11/appengine-simple-jetty-main/
폴더에서 다음 명령어를 실행하여helloworld-servlet
샘플에서 서버를 시작할 수 있습니다.mvn exec:java -Dexec.args="../helloworld-java8/target/helloworld.war"
웹브라우저에 다음 주소를 입력합니다.
애플리케이션을 배포하려면 다음 안내를 따르세요.
gcloud 도구
gcloud app deploy
Maven 플러그인
mvn package appengine:deploy -Dapp.deploy.projectId=PROJECT_ID
PROJECT_ID를 Google Cloud 프로젝트의 ID로 바꿉니다.
pom.xml
파일에 이미 프로젝트 ID가 지정된 경우 실행할 명령어에-Dapp.deploy.projectId
속성을 포함하지 않아도 됩니다.