지원되는 최신 자바 버전으로 마이그레이션하고 앱에서 기존 번들 서비스를 사용하지 않는 경우 App Engine 자바 8 웹 애플리케이션을 실행 가능한 JAR 파일로 다시 패키징해야 합니다.
애플리케이션에는 PORT 환경 변수로 지정될 수 있는 포트 8080에서 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 packageWAR 파일을 인수로 사용하여 서버를 시작합니다.
예를 들어
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속성을 포함하지 않아도 됩니다.