본문 바로가기

Backend/Kotlin

Ktor Application 빌드 오류 시 (Shadow Plugin)

Ktor Application을 IntelliJ에서 실행할 땐 잘되는데 gradle로 단순히 빌드하고 실행하면 오류가 발생해요.

이게 오류 그대로 jvm에서 jar 파일의 main 메소드를 찾지 못했다는 오류입니다.

main 메소드는 manifest에 있기 때문에 no main manifest attribute라는 문구로 알려줍니다.

 

no main manifest attribute, in build/libs/ktor-sample-0.0.1.jar

 

해결 방법은 다양한대요.

구글링해보시면 build.gradle.ts 에 Main 클래스를 정의해줌으로써 간단히 해결이 가능합니다.

크게 문제될 일은 없지만 추천하는 방법은 아닙니다.

 

Ktor 문서에서 위의 문제를 해결하기 위한 가이드를 제공합니다.

 

Gradle Shadow 플러그인을 사용하면 모든 코드 종속성(fat JAR)을 포함하는 실행 가능한 JAR을 만들 수 있습니다. 이 주제에서는 기존 Gradle 프로젝트에 Ktor 추가 주제 에서 생성된 Ktor 애플리케이션에 대한 팻 JAR을 생성하고 실행하는 방법을 보여줍니다. (아래 문서 내용 번역)

 

아래 보고 따라하시면 되요.

https://ktor.io/docs/fatjar.html

 

Gradle Shadow plugin | Ktor

 

ktor.io

 

build.gradle.kts

아래 코드를 추가해주시고 빌드를 해야 합니다.

 

plugins {
  id("com.github.johnrengelman.shadow") version "7.0.0"
}

 

tasks{
  shadowJar {
    manifest {
      attributes(Pair("Main-Class", "com.example.ApplicationKt"))
    }
  }
}

 

 

showdowJar task로 빌드하면 됩니다.

 

 

 

그럼 아래와 같이 jar 파일이 생깁니다.

 

 

 

그리고 실행해주시면 잘 동작합니다.

 

'Backend > Kotlin' 카테고리의 다른 글

Kotlin 랜덤 숫자 000000~999999  (0) 2022.04.17
Ktor Ktorm DB 연동 (매우 간단)  (0) 2021.12.02
Ktor Install Gson  (0) 2021.11.16
Ktor Framework 프로젝트 생성  (0) 2021.11.12