Spark Framework + Kotlin으로 작성된 Gradle 프로젝트를 Heroku에 배포

개요



타이틀대로입니다.

build.gradle


apply plugin: 'kotlin'
version '1.0-SNAPSHOT'

buildscript {
  ext.kotlin_version = '1.0.6'

  repositories {
    mavenCentral()
  }
  dependencies {
    classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
  }
}

repositories {
  mavenCentral()
}

dependencies {
  compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
  compile 'com.sparkjava:spark-core:+'
  compile 'org.slf4j:slf4j-simple:+' // Failed to load classで怒られるので入れる
}

// ライブラリのコピー
task copyToLib(type: Copy) {
  into "$buildDir/libs"
  from(configurations.compile)
}

// Herokuから実行されるタスク
task stage(dependsOn: ['clean', 'build', 'copyToLib'])
build.mustRunAfter clean

Procfile



클래스 폴더와 복사 후 라이브러리 폴더의 경로를 통해 실행 클래스 이름을 설명합니다.
web: java $JAVA_OPTS -cp build/classes/*:build/libs/* app.Main

Main.kt


package app

import spark.Spark
import spark.Spark.*


object Main {
  @JvmStatic fun main(args: Array<String>) {
    System.getenv("PORT")?.let {
      Spark.port(it.toInt())
    }
    get("/") { req, res -> "Hello World!" }
  }
}

.gitignore



빌드가 잘되지 않고 앱이 충돌한 채로 되어 버리므로, 아래는 Git 관리에서 제외하십시오.
.gradle
.idea
build

프로젝트 구성





샘플


  • kenichi-odo/spark-kotlin-gradle-heroku

  • 참고문헌


  • Deploying Gradle Apps on Heroku
  • Writing and deploying a simple application using Java 8 + Spark + Gradle + Heroku + Intellij IDEA
  • 좋은 웹페이지 즐겨찾기