Ktor + Gradle에서 Autoreload

2212 단어 KtorKotlingradle
요 전날 .Android 엔지니어가 익숙한 기술로 만드는 유지비 0엔의 서버측 애플리케이션 이라는 기사에서 Ktor와 Gradle을 해설했습니다. 이 기사는 보충으로 Autoreload를 설명합니다.

해결하려는 문제


./gradlew run 명령으로 로컬 서버를 시작할 수 있습니다. 하지만 소스 코드를 변경한 후 그 내용을 로컬 서버에 반영할 때는 CTRL + C 키로 종료한 다음 다시 ./gradlew run 명령을 입력해야 합니다. 이 노력을 절약하고 싶습니다.

전제 조건



요 전날 기사 'Android 엔지니어가 익숙한 기술로 만드는 유지비 0엔의 서버측 애플리케이션

동작 확인



Ktor 1.4.0 및 1.4.3에서 작동 확인 중입니다. 1.5.0에서는 작동하지 않았습니다.

Ktor의 Autoreload 사용



Ktor의 표준 기능으로 Autoreload가 있습니다. 공식 해설

먼저 application.conf 파일에 감시 폴더 전체 경로의 일부를 설정합니다.
Kotlin 소스 코드는 src/main/java 아래에 넣었으므로 main를 부분으로 지정했습니다.
그 부분을 포함한 .class 파일의 갱신이 로컬 서버에 반영됩니다.

src/main/resources/application.conf
ktor {
    deployment {
        port = 8080
        // 追加
        watch = [ main ]
    }
    // 略
}

.class 파일의 업데이트가 반영되므로 빌드가 필요합니다.
InteliJ IDEA Build Project 버튼을 누르거나



로컬 서버가 실행되는 콘솔과는 다른 콘솔에서
./gradlew installDist

명령을 입력합니다.
브라우저를 다시 로드하면 변경사항이 반영됩니다.

소스 코드 변경을 트리거로 빌드 실행



또한 Gradle의 Continuous Build 을 사용하여 소스 코드 변경을 트리거로 빌드를 실행할 수 있으므로 Build Project 버튼 클릭이나 ./gradlew installDist 명령 입력의 번거로움을 줄일 수 있습니다.

로컬 서버가 실행되는 콘솔과는 다른 콘솔에서
./gradlew installDist --continuous

또는
./gradlew installDist -t

을 실행합니다.

좋은 웹페이지 즐겨찾기