Gradle 및 App Engine 플러그인 사용

Gradle은 유연성과 성능에 중점을 둔 오픈소스 빌드 자동화 도구입니다. App Engine은 앱을 빌드하고 App Engine에 배포하는 데 사용할 수 있는 Gradle 플러그인을 제공합니다. 이 가이드의 코드 샘플은 Gradle 버전 8을 사용합니다.

이 코드 샘플은 build.gradle 파일을 구성하여 App Engine Gradle 태스크, Maven 저장소, App Engine Gradle 플러그인, Java 8용 종속 항목을 추가하는 방법을 보여줍니다. Java 버전 11 이상을 사용하는 경우 자바 런타임에서 최신 버전 사용에 대한 자세한 내용을 참조하세요.

시작하기 전에

  1. 자바 설치

  2. Gradle 설치

  3. git 설치

  4. 아직 설치하지 않았으면 이 가이드의 단계를 수행하여 gcloud CLI를 다운로드하고 Google Cloud 프로젝트를 만든 후 App Engine 앱을 초기화합니다.

  5. gcloud CLI app-engine-java 구성요소를 설치합니다.

    gcloud components install app-engine-java
    

새 Gradle 프로젝트 만들기

셸을 사용하여 처음부터 새 Gradle 프로젝트를 만들 수 있습니다. 또는 플러그인을 시험해 보려면 Hello World 프로젝트를 다운로드하고 로컬에서 실행해 배포할 수 있습니다.

새 프로젝트를 만들려면 다음과 같이 합니다.

  1. 새 디렉토리를 만들어 해당 디렉토리로 이동합니다.

  2. 새 프로젝트를 초기화하려면 다음을 사용하세요.

    1. gradle init을 실행합니다.

      gradle init --type java-application
      

      다음과 같은 질문에 답합니다.

      • 대상 Java 버전 입력(최소: 7, 기본값: 21): 21
      • 애플리케이션 구조 선택: 단일 애플리케이션 프로젝트의 경우 1
      • 빌드 스크립트 DSL 선택: 2(Groovy의 경우)
      • 테스트 프레임워크 선택: 1(JUnit 4의 경우)
      • 새 API 및 동작을 사용하여 빌드 생성: 아니요
    2. WEB-INF 폴더를 만듭니다.

      mkdir -p app/src/main/webapp/WEB-INF
      
    3. appengine 폴더를 만듭니다.

      mkdir -p app/src/main/appengine
      
  3. gradle init에 의해 생성된 스텁 파일을 삭제합니다.

    rm ./app/src/main/java/org/example/App.java ./app/src/test/java/org/example/AppTest.java
    
  4. app/build.gradle 파일에 다음을 추가하여 App Engine Gradle 태스크, Maven 저장소, App Engine Gradle 플러그인, 종속 항목, 태스크 구성을 추가합니다.

    buildscript {      // Configuration for building
      repositories {
        jcenter()      // Bintray's repository - a fast Maven Central mirror & more
        mavenCentral()
      }
      dependencies {
        classpath 'com.google.cloud.tools:appengine-gradle-plugin:2.5.0'
        classpath 'org.akhikhl.gretty:gretty:+'
      }
    }
    
    repositories {   // repositories for Jar's you access in your code
      jcenter()
      mavenCentral()
    }
    
    apply plugin: 'java'
    apply plugin: 'war'
    apply plugin: 'org.akhikhl.gretty'
    apply plugin: 'com.google.cloud.tools.appengine'
    
    dependencies {
      providedCompile 'javax.servlet:javax.servlet-api:3.1.0'
      providedCompile 'com.google.appengine:appengine:+'
    // Add your dependencies here.
    
    }
    
    gretty {
        servletContainer = 'jetty9'  // What App Engine Flexible uses
    }
    
      appengine {
        deploy {   // deploy configuration
          stopPreviousVersion = true  // default - stop the current version
          promote = true              // default - & make this the current version
        }
      }
    
    group = 'com.example.appengine'   // Generated output GroupId
    version = '1.0-SNAPSHOT'          // Version in generated output
    
    sourceCompatibility = 1.8
    targetCompatibility = 1.8
  5. 또한 텍스트 편집기 또는 통합 개발 환경(IDE)을 사용하여 프로젝트에 다음 파일을 추가해야 합니다.

Java App Engine 프로젝트 개요는 개발 환경 설정을 참조하세요.

개발 서버에서 애플리케이션 테스트

  1. 로컬에서 실행할 때 프로젝트에서 Google 리소스에 액세스하려면 다음 명령어를 실행하여 애플리케이션 기본 사용자 인증 정보를 설정합니다.

    gcloud auth application-default login
    
  2. 애플리케이션 디렉터리의 루트로 변경합니다.

  3. 개발 단계에서는 언제든지 Gradle을 호출하여 개발 서버에서 애플리케이션을 실행하고 테스트할 수 있습니다.

    gradle jettyRun
    

    또는 Gradle 래퍼를 사용하여 Gradle을 설치하지 않고도 실행할 수 있습니다.

  4. 서버가 시작되기를 기다립니다. 다음과 비슷한 메시지가 표시되면 서버가 시작되고 애플리케이션이 실행됩니다.

    :prepareInplaceWebAppFolder
    :createInplaceWebAppFolder
    :compileJava
    :processResources UP-TO-DATE
    :classes
    :prepareInplaceWebAppClasses
    :prepareInplaceWebApp
    :jettyRun
    17:40:05 INFO  Jetty 9.2.15.v20160210 started and listening on port 8080
    17:40:05 INFO   runs at:
    17:40:05 INFO    http://localhost:8080/
    
  5. 앱이 http://localhost:8080에서 실행됩니다.

Gretty 플러그인에 대한 자세한 내용은 Gretty 구성Gretty 태스크를 참조하세요.

애플리케이션 배포

애플리케이션을 배포하려면 다음 안내를 따르세요.

gradle appengineDeploy

appengineDeploy 태스크와 다른 모든 Gradle 태스크는 사용자가 사용할 수 있는 관련 속성이 있습니다. 태스크와 속성의 전체 목록은 App Engine Gradle 태스크 및 속성을 참조하세요.

Gradle 래퍼 사용

Gradle은 설치 없이 필요한 버전의 Gradle을 다운로드하고 실행할 수 있는 메커니즘을 제공합니다.

Linux/macOS

  1. 샘플 코드 디렉터리로 변경합니다.

  2. gradlew를 실행합니다.

    ./gradlew jettyRun
    

Windows

  1. 샘플 코드 디렉터리로 변경합니다.

  2. gradlew를 실행합니다.

    ./gradlew.bat jettyRun
    

Gradle에 대한 추가 정보는 App Engine Gradle 태스크 및 속성을 참조하세요.

다음 단계